IIS : HSTS を有効にする2022/01/26 |
HSTS (Hypertext Strict Transport Security) を有効にすると、Web ブラウザーに SSL/TLS の使用を強制することができます。
下例で設定している [includeSubDomains] により、対象ドメイン全てが HTTPS
接続の対象となるため、設定対象のサイトやドメインについて、全ページが HTTPS アクセス可能か、事前によく確認しておく必要があります。
|
|
[1] | |
[2] | PowerShell を管理者権限で起動して設定します。 |
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\Users\Administrator> Get-Website Name ID State Physical Path Bindings ---- -- ----- ------------- -------- Default Web Site 1 Started %SystemDrive%\inetpub\wwwroot http *:80: RX-7.srv.world 2 Started C:\inetpub\newsite http *:80:rx-7.srv.world # 設定したいサイト名を格納 PS C:\Users\Administrator> [String]$MySite = "RX-7.srv.world" # 対象サイトの HSTS の設定を有効化 PS C:\Users\Administrator> Set-IISConfigAttributeValue -ConfigElement (Get-IISConfigElement -ConfigElement (Get-IISConfigCollectionElement -ConfigCollection (Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection) -ConfigAttribute @{"name"=$MySite}) -ChildElementName "hsts") -AttributeName "enabled" -AttributeValue $true # 対象サイトの HSTS の [max-age] 設定を 31536000 秒 (365日) に設定 PS C:\Users\Administrator> Set-IISConfigAttributeValue -ConfigElement (Get-IISConfigElement -ConfigElement (Get-IISConfigCollectionElement -ConfigCollection (Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection) -ConfigAttribute @{"name"=$MySite}) -ChildElementName "hsts") -AttributeName "max-age" -AttributeValue 31536000 # 対象サイトの HSTS の [includeSubDomains] 設定を有効化 # 有効化するとサブドメインも含めて対象ドメイン全てで HSTS が有効となる PS C:\Users\Administrator> Set-IISConfigAttributeValue -ConfigElement (Get-IISConfigElement -ConfigElement (Get-IISConfigCollectionElement -ConfigCollection (Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection) -ConfigAttribute @{"name"=$MySite}) -ChildElementName "hsts") -AttributeName "includeSubDomains" -AttributeValue $true # 対象サイトの HSTS の [redirectHttpToHttps] 設定を有効化 PS C:\Users\Administrator> Set-IISConfigAttributeValue -ConfigElement (Get-IISConfigElement -ConfigElement (Get-IISConfigCollectionElement -ConfigCollection (Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection) -ConfigAttribute @{"name"=$MySite}) -ChildElementName "hsts") -AttributeName "redirectHttpToHttps" -AttributeValue $true # 対象サイトの HSTS の [preload] 設定を有効化 PS C:\Users\Administrator> Set-IISConfigAttributeValue -ConfigElement (Get-IISConfigElement -ConfigElement (Get-IISConfigCollectionElement -ConfigCollection (Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection) -ConfigAttribute @{"name"=$MySite}) -ChildElementName "hsts") -AttributeName "preload" -AttributeValue $true # 設定確認 PS C:\Users\Administrator> Get-IISConfigElement -ConfigElement (Get-IISConfigCollectionElement -ConfigCollection (Get-IISConfigSection -SectionPath "system.applicationHost/sites" | Get-IISConfigCollection) -ConfigAttribute @{"name"=$MySite}) -ChildElementName "hsts" Attributes : {enabled, max-age, includeSubDomains, preload...} ChildElements : {} ElementTagName : hsts IsLocallyStored : True Methods : RawAttributes : {[enabled, True], [max-age, 31536000], [includeSubDomains, True], [preload, True]...} Schema : Microsoft.Web.Administration.ConfigurationElementSchema |
IIS : HSTS を有効にする (GUI)
|
GUI で設定する場合は以下のように実行します。
|
|
[3] | [スタート] - [サーバーマネージャー] から [ツール] - [インターネット インフォメーション サービス マネージャー] を起動し、左ペインの [サイト] から、HSTS を設定したいサイトを選択して、右ペインの [HSTS...] をクリックします。 |
[4] |
[有効化] にチェックを入れて有効にします。
その他の項目は下記の通りです。
[最大有効期間]
Web ブラウザーが HSTS ポリシーをキャッシュして適用する時間 (秒)
[includeSubDomains]
対象ドメインの全サブドメインに HSTS ポリシーを適用
[プリロード]
[Http を Https にリダイレクト]有効にすると HSTS Preload リスト (https://hstspreload.org/) に含まれる Http を Https にリダイレクトする |
Sponsored Link |