共用方式為


PowerShell 嵌入式管理單元:使用 IIS PowerShell 嵌入式管理單元設定 SSL

由 IIS 小組

若要啟用 SSL,需要三個步驟:

  1. 取得及安裝憑證
  2. 在 IIS 中建立 SSL 系結
  3. 將憑證指派給 IIS 系結的 IP:Port

選擇性地:

  • 在您的網站上強制執行 SSL

取得及安裝憑證

取得憑證是一項棘手的業務。 您網站的使用者必須信任憑證,這就是您必須從受信任的憑證授權單位單位取得憑證的原因。 不過,為了進行測試,您可以建立自己的憑證。 在此逐步解說中,我們將使用所謂的自我簽署憑證。 可協助我們建立自我簽署憑證的工具稱為 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

注意

您的憑證指紋將會不同!

現在,讓我們使用 IIS PowerShell 嵌入式管理單元來建立 SSL 系結,並將它與我們剛才建立的憑證產生關聯

建立 SSL 系結

我們會使用名為 New-WebBinding 的其中一個工作型 Cmdlet,將 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 會將冒號視為磁片磁碟機指示器,改為使用驚嘆號:

您可以 CD 到 IIS:\SslBindings 目錄,並查詢現有的 SSL 系結。 IIS 預設安裝上的目錄將會是空的:

PS IIS:\> cd SslBindings
PS IIS:\SslBindings> dir

現在,您可以使用我們在步驟一取得的憑證雜湊,並將它與 0.0.0.0.0 () 和 SSL 埠 443 的所有 IP 位址產生關聯:

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 系結。