Windows 2022
Sponsored Link

IIS : SSL/TLS の設定2022/01/26

 
SSL/TLS を有効化して、暗号化通信ができるように設定します。
[1]
事前に SSL証明書を 購入 または 作成 または 取得 しておきます。
[2]
PowerShell を管理者権限で起動して設定します。
他ホストで取得した SSL証明書を転送してきた場合、証明書ストアにインポートしておきます。
( [1] のリンク先のように、自ホスト上で自己署名の証明書を作成した場合等は、すでに証明書ストアに証明書が存在しているため作業不要 )
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

# 証明書に設定したエクスポートパスワードを格納
PS C:\Users\Administrator> $Password = ConvertTo-SecureString -AsPlainText -Force "P@ssw0rd" 

# [Cert:\LocalMachine\My] にインポート
# ⇒ GUI で見た場合の [証明書 - ローカルコンピューター] - [個人] 配下
PS C:\Users\Administrator> Import-PfxCertificate -FilePath C:\Users\Administrator\rx-7.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $Password 

   PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\My

Thumbprint                                Subject
----------                                -------
3B751FE86B523386DFC10D3225AC8D2BFD35C575  CN=rx-7.srv.world
[3] サイトに SSL/TLS の設定をします。
証明書は [Cert:\LocalMachine\My] 配下にインポートしていることを前提とします。
# 証明書を確認
PS C:\Users\Administrator> Get-ChildItem Cert:\LocalMachine\My 

   PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\My

Thumbprint                                Subject
----------                                -------
3B751FE86B523386DFC10D3225AC8D2BFD35C575  CN=rx-7.srv.world

# 対象の証明書を $Cert に格納
PS C:\Users\Administrator> $Cert = Get-ChildItem Cert:\LocalMachine\My\3B751FE86B523386DFC10D3225AC8D2BFD35C575 

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

# [RX-7.srv.world] サイトに SSL Binding を設定
PS C:\Users\Administrator> New-WebBinding -Name "RX-7.srv.world" -IPAddress "*" -HostHeader "rx-7.srv.world" -Port 443 -Protocol https 

# 設定した SSL Binding に $Cert を設定
PS C:\Users\Administrator> New-Item IIS:\SslBindings\0.0.0.0!443!rx-7.srv.world -Value $Cert 

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
                                                                https *:443:rx-7.srv.world sslFlags=0

# アクセスして動作確認
# 自己署名の証明書を使用している場合は [-k] (--insecure) オプションが必要
PS C:\Users\Administrator> curl.exe https://rx-7.srv.world/ 
IIS Virtual Host Test Page
IIS : SSL/TLS の設定 (GUI)
 
GUI で設定する場合は以下のように実行します。
[4] 事前に SSL証明書を証明書ストアにインポートしておきます。
当例では、以下のように [証明書 - ローカルコンピューター] - [個人] 配下にインポートしています。
なお、他ホストで取得して PKCS12 形式に変換した証明書をインポートするには、ファイルをダブルクリックして、証明書ストアに [ローカルコンピューター] を選択し、その後はデフォルトのまま次へ次へ進めていけば、以下のような配置になります。
[5] Web サイトへの SSL の設定です。
[スタート] - [サーバーマネージャー] から [ツール] - [インターネット インフォメーション サービス マネージャー] を起動し、左ペインの [サイト] から、SSL バインド を設定したいサイトを右クリックして、[バインドの編集] を選択します。
[6] [追加] ボタンをクリックします。
[7] [種類] に [https] を選択し、[ホスト名] にはホスト名を入力します。 [SSL 証明書] には、当例のように証明書ストアにインポートした場合は、セレクトボックスの選択肢に表示されるため、選択して OK します。
[8] SSL バインディングが追加されました。
[9] 任意のホストから設定したホスト名宛てに HTTPS アクセスして動作を確認します。(自己署名の証明書の場合は警告が表示されます)
関連コンテンツ