質問:Azure WebサイトにHTTPStrict Transport Security(HSTS)を適切にインストールして構成するにはどうすればよいですか?
どうやらIIS使用する方法は、このモジュールをインストールすることです: http://hstsiis.codeplex.com/
問題は、ドキュメントによると、いくつかの.dllをさまざまな場所(HSTS-IIS-Module-2.0.0.msi)にインストールする必要があることです。残念ながら、これはAzure Webサイト環境では不可能と思われます(AzureWebサイトにIISモジュールをインストールする方法は?)?仮想マシンを使用するとおそらく機能しますが、私の質問は通常のAzure Webサイト/ Webアプリを対象としています(ASP.NET MVC 5アプリケーション)。
更新:
ASP.NETを実行している場合は、インストールする必要があります NWebsec 。これにより、HSTSだけでなく、Content-Security-Policyおよび OWASP Secure Headers Project に関連するその他のヘッダーを構成できます。
この解決策は、Scott Hanselmanのブログ(回答の下部にあるソース)で取り上げられています。
基本的に、HSTSは単なるHTTPヘッダーです。ただし、HTTPSを使用している場合にのみ送信する必要があります。これにより、指定されたmax-age
のHTTPSでサイトがロックされます。
アプリケーションのweb.config
に含まれるべきものは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" 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>
<rule 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>