Visual Studio 2017のプロジェクトでSSLを有効にするにはどうすればよいですか?
VS15では、[プロジェクト]-> [プロパティ]-> [デバッグ]-> [SSLを有効にする]を選択できます。このオプションはVS2017では使用できません。どこに移動しましたか?
編集:
.\vs\config\applicationhost.config
を編集してみても無駄になりました:
<listenerAdapters>
<add name="http" />
<add name="https" />
</listenerAdapters>
<sites>
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
<site name="Filters" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51107:localhost" />
<binding protocol="https" bindingInformation="*:43107:localhost" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
<webLimits />
編集:
私が試したもう1つのオプションは、ぎこちなく感じ、IDEのポイントを打ち負かすようなものですが、KestrelがHTTPSを使用するように構成することです。 IISからローカルホストの証明書のコピーをエクスポートする必要があり、IIS Expressは別のポートでサイトをロードしようとするため、これは理想的ではありません。
public class Program
{
public static void Main(string[] args)
{
var Host = new WebHostBuilder()
.UseKestrel(options =>
options.UseHttps(new X509Certificate2("path/to/cert.pfx", "password")))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseUrls("http://localhost:5100", "https://localhost:4300")
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
Host.Run();
}
}
悲しいことに、VS17から実行した場合、これは機能しません。初めて502.2(と思う)エラーが発生しましたが、Chromeで接続できませんというエラーが表示されるだけです。 PowerShellからdotnet run
を実行でき、正常に動作します。
回避策として、トリックを行います。しかし、それはきちんとは思えません。
ポートはIIS Expressでロックダウンされているため、管理者として実行する必要はありません...
有効なポートは44300-44399です
開発コミュニティの記事をご覧ください https://developercommunity.visualstudio.com/content/problem/39430/changing-port-number-in-a-web-project-does-not-imm.html
LaunchSettings.jsonを編集できますが、sslポートはこの範囲内になければなりません。
これはAsp.Net MVC .Net Frameworkプロジェクト用です
ソリューションエクスプローラーで、Webサイト名を右クリックして[プロパティウィンドウ]を選択するか、単にF4を押します。 [開発者Webサーバー]セクションで、[SSL有効]を[偽]から[真]に変更します。
Visual Studio 2017 RCでasp.netコア1.xを実行している場合、launchSettings.jsonファイルの「sslPort」:0行をSSLに使用するポート番号に変更できます。これにより、前の回答で述べた。\ vs\config\applicationhost.configファイルのバインディングが効果的に変更されます。
これはAsp.Net Core 2.0用です
Properties
(はい、それは単なるフォルダーではなく、オブジェクトそのものでもあります)Debug
を開きますEnable SSL
を選択します既に有効になっている場合は、launchSettings.json
を開き(Properties
を展開)、"sslPort"
を0
に設定してから、手順を再度実行します。
VS2017は、SSL証明書を追加するかどうかを尋ねるはずです(自分でlaunchSettings.json
を変更した場合は実行されません)、ポートが設定されます。
.\vs\config\applicationhost.config
の編集は実際に私にとってはうまくいきました。
<site name="Filters" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51107:localhost" />
**<binding protocol="https" bindingInformation="*:43107:localhost" />**
</bindings>
</site>
ただし、デフォルトで非httpsポートを使用してブラウザーにアプリをロードします。ブラウザを手動で43107ポートに向けると、動作するはずです。
編集
これは何回か機能しましたが、機能しなくなりました。その後のテストでは、VS 2017 RCでボタンをクリックしてデバッグを開始すると、手動で追加したバインディングが削除されることが明らかになりました。
ファイルを読み取り専用にすることで修正し、HTTPSのサポートから再開しました。
残念ながら同じ問題が発生しました。プロジェクトのプロパティの[デバッグ]タブに[SSLを有効にする]チェックボックスが表示されませんでした...最後に見つかりました! ->「IIS Express」で起動を設定すると、選択できるようになります;-)
不足している可能性のある重要な点の1つは、Visual Studioを管理者として実行する必要があることです(右のvlick VSアイコンを選択し、「管理者として実行」を選択します。