所有部署指南 部署

如何在 Windows IIS 上安裝 SSL 證書

Microsoft IIS(Internet Information Services)使用 PFX 格式的 SSL 證書——不同於 GetHTTPS 和大多數 Linux 工具生成的 PEM 檔案。本指南涵蓋轉換證書並在 IIS 10 上安裝的全過程。

前提條件

  • Windows Server 已安裝 IIS 10
  • 來自 GetHTTPS 的證書檔案: cert.pemprivkey.pemchain.pem
  • OpenSSL 已安裝(Git for Windows 自帶,或單獨安裝)

第一步:將 PEM 轉換為 PFX

IIS 無法直接讀取 PEM 檔案。使用 OpenSSL 轉換為 PFX 格式:

openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem

系統會提示你設定匯出密碼——在匯入步驟中需要用到。

沒有 OpenSSL? 如果你安裝了 Git for Windows,OpenSSL 位於 C:\Program Files\Git\usr\bin\openssl.exe。或者從 slproweb.com/products/Win32OpenSSL.html 下載。

更多證書格式資訊:PEM、PFX、DER 詳解

第二步:將 PFX 匯入 IIS

  1. 開啟 IIS Manager(執行 inetmgr
  2. 在左側面板點選伺服器名稱
  3. 在中間面板雙擊 Server Certificates
  4. 在右側操作面板點選 Import…
  5. 瀏覽到你的 certificate.pfx 檔案
  6. 輸入你在第一步設定的匯出密碼
  7. 選擇證書儲存:Web Hosting(或 Personal)
  8. 點選 OK

證書現在出現在 Server Certificates 列表中。

第三步:將 HTTPS 繫結到站點

  1. 在 IIS Manager 中,展開左側面板的 Sites
  2. 右鍵你的網站 → Edit Bindings…
  3. 點選 Add…
  4. 設定:
    • Type: https
    • Port: 443
    • Host name: yourdomain.com(留空表示所有主機名)
    • SSL certificate: 選擇你剛匯入的證書
  5. 點選 OK
  6. 如需要,對 www.yourdomain.com 重複操作

第四步:將 HTTP 重新導向到 HTTPS

安裝 URL Rewrite 模組(如果尚未安裝),然後在站點的 web.config 中新增:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

第五步:驗證

在瀏覽器中開啟 https://yourdomain.com。點選鎖頭圖示驗證證書詳情。

PowerShell 驗證:

# Check the certificate bound to port 443
netsh http show sslcert

故障排查

”A specified logon session does not exist”

私鑰未正確匯入。重新匯出 PFX 檔案:

openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass:YourPassword

確保 PFX 是從匹配的金鑰 + 證書檔案建立的。

證書在繫結下拉選單中不顯示

匯入可能靜默失敗了。檢查 Event Viewer → Windows Logs → Application 中的錯誤。確保 PFX 密碼正確且檔案未損壞。

繫結後顯示”此站點不安全”

檢查證書鏈是否完整。PFX 轉換時必須包含 chain.pem-certfile chain.pem)。沒有它,瀏覽器無法驗證信任鏈。

常見問題

可以在 IIS 上使用 Let’s Encrypt 證書嗎?

可以。Let’s Encrypt 證書適用於任何伺服器,包括 IIS。唯一額外的步驟是將 PEM 轉換為 PFX 格式。GetHTTPS 提供 PEM 檔案;上面的 OpenSSL 命令可以轉換它們。

有類似 Certbot 的 IIS 工具嗎?

win-acme(原名 letsencrypt-win-simple)是 Windows/IIS 上最流行的 ACME 用戶端。它一站式處理證書籤發、PFX 轉換、IIS 繫結和自動續簽。如果你想要全自動的 Let’s Encrypt on IIS,可以使用它。

如何在 IIS 上續簽?

  1. GetHTTPS 獲取新證書
  2. 轉換為 PFX:openssl pkcs12 -export -out new.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
  3. 在 IIS Manager → Server Certificates 中匯入新 PFX
  4. 更新站點繫結使用新證書
  5. 從 Server Certificates 中移除舊證書

要自動續簽,考慮 win-acme——它自動處理整個週期。

IIS 支援 ECDSA/ECC 證書嗎?

Windows Server 2016+ 上的 IIS 10 支援 ECDSA 證書。GetHTTPS 預設生成 ECDSA P-256,適用於現代 IIS。較舊的 IIS 版本(8.5 及以下)可能需要 RSA 證書。

IIS 能在同一 IP 上使用多個站點嗎?

可以。IIS 8+ 支援 SNI(Server Name Indication),允許在同一 IP 地址上使用多個 SSL 證書。新增 HTTPS 繫結時,勾選”Require Server Name Indication”並輸入主機名。每個站點可以有自己的證書。

如何在 Windows 上找到 OpenSSL?

Windows 預設不包含 OpenSSL。常見來源:

  • Git for Windows 包含它,位於 C:\Program Files\Git\usr\bin\openssl.exe
  • Chocolatey: choco install openssl
  • Win32/Win64 構建: 從 slproweb.com 下載

安裝後,將其新增到 PATH 或在命令中使用完整路徑。

相關文章

快速開始 2026-05-08
如何獲取免費 SSL 證書(分步指南)
5 分鐘從 Let's Encrypt 獲取免費 SSL 證書 — 無需安裝軟體、無需註冊賬號。涵蓋 4 種方法、兩種驗證方式、6 個平臺的安裝教程和故障排除。
SSL 與憑證 2026-05-07
SSL 證書格式:PEM、PFX、DER 詳解
理解 PEM、PFX/PKCS#12 和 DER 證書格式。瞭解你的伺服器需要哪種格式,以及如何使用 OpenSSL 在它們之間轉換。
部署 2026-05-07
如何將 HTTP 重新導向到 HTTPS
使用服務端重新導向強制所有流量使用 HTTPS。Nginx、Apache 和 .htaccess 的 301 永久重新導向配置示例。
在瀏覽器中取得免費 SSL 憑證
無需安裝,無需帳號。私鑰始終留在你的裝置上。
取得憑證