web-dev-qa-db-ja.com

デバッグでSSLのlaunchSettings.jsonを構成する-ASP.NET Core / Visual Studio Code

私は this チュートリアルに従って、Facebook認証をWebアプリに追加しています。

プロセスの一部として、プロジェクトでSSLを有効にしようとしていますが、見つかったすべてのことは、Visual Studioの[プロジェクトプロパティ]ダイアログの設定を更新することです。これは、MacのVisual Studio Codeからは使用できません。 launchSettings.jsonの値を手動で更新しようとしましたが、うまくいきませんでした。

Visual Studio CodeのlaunchSettings.json(または他のプロジェクトファイル)を更新して、デバッグ中にSSLを有効にするにはどうすればよいですか?

14
Jeff Gardner

WindowsのlaunchSettings.jsonに次の編集を加えたところ、うまくいきました。現在、これが Visual Studio 2017 RC で行う唯一の方法です。

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:50183/",
      "sslPort": 44318
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "https://localhost:44318",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "corePostgresIdentity": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "https://localhost:44318"
    }
  }
}
7
Sam Sippe

VS CodeでのデバッグのためだけにProgram.csファイルを変更したくない場合は、launch.jsonでURLを構成することもできます。 envプロパティでURLを指定する必要があります。 xnegが言ったように、これを行うには自己署名証明書をセットアップする必要があります。

Http URLとhttps(SSL)URLを設定できます

"configurations":[
    {
        ...
        "env": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "ASPNETCORE_URLS": "http://localhost:5002;https://localhost:5003"
        },
        ...
    }

Kestrelのドキュメント は、これを理解するのに役立ちました。

6
Brad Lawrence

ASP.NET CoreアプリをVS Codeで実行すると、IISではなくKestrelで実行されます。次のように手動でSSLを有効にするためにKestrelを設定する必要があります(Program.cs内):

public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseKestrel(options =>
            {
                options.Listen(IPAddress.Loopback, 5000, listenOptions =>
                {
                    listenOptions.UseHttps("localhost.pfx", "yourPassword");
                });
            })
            .UseUrls("https://localhost:5000")
            .Build();

自己署名証明書を作成する方法は、この素晴らしい 記事 で説明されています。

2
xneg

通常、プロジェクトのプロパティを変更すると、変更はlaunchSettings.json。したがって、変更する必要がありますlaunchSettings.json以下のように:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:8837/",
      "sslPort": 0 //Add ssl port here
    }
  },
 "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "https://localhost:8837",
      "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
     }
},
0
Rahul Nikate