PowerShell スナップイン: IIS PowerShell スナップインを使用した SSL の構成
作成者: IIS チーム
SSL を有効にするには、次の 3 つの手順が必要です。
- 証明書の取得とインストール
- IIS での SSL バインドの作成
- IIS バインドの IP:Port への証明書の割り当て
と、必要に応じて:
- Web サイトでの SSL の適用
証明書の取得とインストール
証明書の取得は難しい作業です。 Web サイトのユーザーは証明書を信頼する必要があるため、信頼できる証明機関から証明書を取得する必要があります。 ただし、テスト目的で独自の証明書を作成できます。 このチュートリアルでは、いわゆる自己署名証明書を使用します。 自己署名証明書の作成に役立つツールは MAKECERT と呼ばれ、Visual Studio SDK ツールの一部です。 次の MAKECERT コマンドを実行すると、自己署名証明書が作成され、"my" Windows 証明書ストアに自動的にインストールされます。
makecert -r -pe -n "CN=MyTestServer" -b 07/01/2008 -e 07/01/2010 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
証明書プロバイダーを使用し、証明書ストア内の証明書を確認できます。
PS IIS:\> dir cert:\localmachine\my
Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint Subject
---------- -------
7ABF581E134280162AFFFC81E62011787B3B19B5 CN=MyTestServer
Note
証明書の拇印は違っているでしょう。
次に、IIS PowerShell スナップインを使用して SSL バインディングを作成し、先ほど作成した証明書に関連付けます
SSL バインドの作成
New-WebBinding と呼ばれるタスク ベースのコマンドレットのいずれかを使用し、既定の Web サイトに SSL バインドを追加します。
PS IIS:\> New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
バインド コレクションは、次のコマンドを使用して確認できます。
PS IIS:\> Get-WebBinding 'Default Web Site'
protocol bindingInformation
-------- ------------------
http *:80:
https *:443:
IIS バインドの IP:Port への証明書の割り当て
SSL 設定が HTTP.SYS 構成ストアに格納され、名前付け規則が少し異なるため、少し複雑になりました。
- HTTP.SYS では、0.0.0.0 を使用してすべての IP アドレスを指定する必要があります。IIS では、アスタリスク (*) を使用します。
- IIS では、":" を使用してバインドを分離します。 PowerShell ではコロンがドライブ インジケーターとして表示されるため、代わりに感嘆符が使用されます。
IIS:\SslBindings ディレクトリに CD コマンドで移動し、既存の SSL バインドに対してクエリを実行できます。 IIS の既定のインストールでは、ディレクトリは空になります。
PS IIS:\> cd SslBindings
PS IIS:\SslBindings> dir
手順 1 で取得した証明書ハッシュを使用して、すべての IP アドレス (0.0.0.0) と SSL ポート 443 に関連付けることができます。
PS IIS:\SslBindings> get-item cert:\LocalMachine\MY\7ABF581E134280162AFFFC81E62011787B3B19B5 | new-item 0.0.0.0!443
前のコマンド実行により、次の SSL バインドが生成されました。
IP Address Port Store Sites
---------- ---- ----- -----
0.0.0.0 443 My Default Web Site
SSL は使用する準備ができています。https://localhost
を入力してサイトを参照できます。
まとめ
PowerShell を使用して SSL を設定するのは非常に簡単なプロセスです。 証明書を取得し、IIS で SSL バインディングを作成してから、IIS バインドの IP とポートを使用し、HTTP.SYS で SSL バインディングを作成する必要があります。