web-dev-qa-db-ja.com

Visual Studio 2017でSSLを有効にする

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を実行でき、正常に動作します。

回避策として、トリックを行います。しかし、それはきちんとは思えません。

44
Ashley Bye

ポートは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ポートはこの範囲内になければなりません。

48
Mike Kushner

これはAsp.Net MVC .Net Frameworkプロジェクト用です

  1. Projectを強調表示して選択します。
  2. その後、ヒット F4 プロパティペインを開きます。
  3. リストでSSLが有効アイテムを見つけ、その値をTrueに設定し、SSL URL値をクリップボードにコピーします。
  4. Projectが強調表示されている間に、ヒット Alt + Enter [プロパティ]ダイアログを開くには、コピーしたSSL URLWebメニュー入力ボックスの下のプロジェクトURLに貼り付けます。
44
user9410863

Visual Studio 2017の場合:

  1. ソリューションエクスプローラーで、プロジェクトを右クリックし、プロパティ
  2. Debugタブを選択します
  3. チェックSSLを有効にするenter image description here
11
RickAndMSFT

ソリューションエクスプローラーで、Webサイト名を右クリックして[プロパティウィンドウ]を選択するか、単にF4を押します。 [開発者Webサーバー]セクションで、[SSL有効]を[偽]から[真]に変更します。

5
user44129

Visual Studio 2017 RCでasp.netコア1.xを実行している場合、launchSettings.jsonファイルの「sslPort」:0行をSSLに使用するポート番号に変更できます。これにより、前の回答で述べた。\ vs\config\applicationhost.configファイルのバインディングが効果的に変更されます。

4
MaxT

これはAsp.Net Core 2.0用です

  1. VS2017でソリューションエクスプローラーを開きます。
  2. ダブルクリックProperties(はい、それは単なるフォルダーではなく、オブジェクトそのものでもあります)
  3. 左側のDebugを開きます
  4. 下にスクロールしてEnable SSLを選択します

既に有効になっている場合は、launchSettings.jsonを開き(Propertiesを展開)、"sslPort"0に設定してから、手順を再度実行します。

VS2017は、SSL証明書を追加するかどうかを尋ねるはずです(自分でlaunchSettings.jsonを変更した場合は実行されません)、ポートが設定されます。

4
DavidHulsman

.\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のサポートから再開しました。

1
rushinge

Property Settings

残念ながら同じ問題が発生しました。プロジェクトのプロパティの[デバッグ]タブに[SSLを有効にする]チェックボックスが表示されませんでした...最後に見つかりました! ->「IIS Express」で起動を設定すると、選択できるようになります;-)

1
StephanieVL

不足している可能性のある重要な点の1つは、Visual Studioを管理者として実行する必要があることです(右のvlick VSアイコンを選択し、「管理者として実行」を選択します。

0
Tiago Chilanti