web-dev-qa-db-ja.com

このサイトは安全な接続を提供できません

Web.configにURL書き換えコードを追加し、それをAzureに発行したとき。 httpでウェブサイトにアクセスしようとしても、自動的にhttpsにリダイレクトされます。

<rewrite>
  <rules>
    <rule name="Redirect to https">
      <match url="(.*)"/>
      <conditions>
        <add input="{HTTPS}" pattern="Off"/>
      </conditions>
      <action type="Redirect" url="https://{HTTP_Host}/{R:1}"/>
    </rule>
  </rules>
</rewrite>

しかし、ローカルマシンで同じコードを実行すると、次のエラーが発生します。

このサイトは安全な接続を提供できません

enter image description here

ローカルマシンで上記のコードを実行するときに、上記のエラーを解決するにはどうすればよいですか?

10
Pradeep

私が個人的に行っているのは、その構成をWeb.Release.configに書き直すことです。ローカルで動作させるのは少し面倒だからです。

問題は、IIS Expressは異なるポートでHTTPとHTTPSを公開するため、http://localhost:1234からhttps://localhost:1234にリダイレクトすると、単に動作しません。 IIS Expressはhttps://localhost:44300などのHTTPSを公開しています。

IIS ExpressでSSL/TLSを有効にすることができます(そうする必要があります)が、リライトルールはリリースモードのみに残します。

Web.Release.configファイルの例を次に示します。

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.Microsoft.com/XML-Document-Transform">
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
  <system.webServer>
    <rewrite xdt:Transform="Insert">
      <rules>
        <!-- Redirects users to HTTPS if they try to access with HTTP -->
        <rule
          name="Force HTTPS"
          stopProcessing="true">
          <match url="(.*)"/>
          <conditions>
            <add input="{HTTPS}" pattern="^OFF$" ignoreCase="true"/>
          </conditions>
          <action
            type="Redirect"
            url="https://{HTTP_Host}/{R:1}"
            redirectType="Permanent"/>
        </rule>
      </rules>
      <outboundRules>
        <!-- Enforces HTTPS for browsers with HSTS -->
        <!-- As per official spec only sent when users access with HTTPS -->
        <rule
          xdt:Transform="Insert"
          name="Add Strict-Transport-Security when HTTPS"
          enabled="true">
          <match serverVariable="RESPONSE_Strict_Transport_Security"
              pattern=".*" />
          <conditions>
            <add input="{HTTPS}" pattern="on" ignoreCase="true" />
          </conditions>
          <action type="Rewrite" value="max-age=31536000" />
        </rule>
      </outboundRules>
    </rewrite>
  </system.webServer>
</configuration>

ここでHSTSも追加していることに注意してください。 <rewrite>要素をリリースモードでWeb.configに挿入します。 <system.webServer>要素はWeb.configに既に存在します。そうでない場合は挿入します。

7
juunas

HTTPSで使用するVisual Studio Serverを構成する必要があります。詳細については、次のリンクをご覧ください。
Visual Studioの組み込みASP.NET開発サーバーを使用したHTTPS

0
Boney

古いバージョンのChrome Webブラウザーでこの問題を解決しました。

これは 古いバージョンのリストchromeバージョン です。ダウンロードしてインストールできます。

60.0.3112.90-Ubuntuの場合、私にとっては問題なく機能するバージョンです。

多分それは新しいバージョンより少し遅いかもしれませんが、私はそれが生産のためにかなり良いことがわかりました(:

0
Milosh