次の方法で共有


PowerShell スナップイン: IIS PowerShell スナップインを使用した SSL の構成

作成者: IIS チーム

SSL を有効にするには、次の 3 つの手順が必要です。

  1. 証明書の取得とインストール
  2. IIS での SSL バインドの作成
  3. 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 構成ストアに格納され、名前付け規則が少し異なるため、少し複雑になりました。

  1. HTTP.SYS では、0.0.0.0 を使用してすべての IP アドレスを指定する必要があります。IIS では、アスタリスク (*) を使用します。
  2. 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 バインディングを作成する必要があります。