先前有寫過一篇「Beantragen Sie das Wildcard-Zertifikat "Let's Encrypt" unter Windows",該篇主要是透過 “Holen Sie sich HTTPS kostenlos!” 網站以動手動方式申請或展延憑證。最近在架新的網站時,試著用 WIN-ACME 工具來申請,以方便之後使用其自動展延 (renewal) Eigenschaften。
◎ 首先至 WIN-ACME 的 GitHub 下載最新的工具,這邊以 win-acme.v2.1.22.1260.x64.pluggable.zip 為範例。
◎ 下載完成並解壓縮後,以「系統管理員身分」執行 wacs.exe。
◎ Weiter,主要都是以 WIN-ACME 官方針對 apache 環境的範例Einstellung。
◎ Eingabe “m”,手動設定各參數。

◎ Eingabe “m” 或按 Enter (預設 m),手動設定各參數。

◎ 輸入要申請憑證的網址,如 www.abc.com。

◎ 為此域名輸入一個好識別的別名,或是按 Enter 使用預設值。

◎ Eingabe “1”,提供本機網站目錄路徑以進行域名驗證。

◎ 輸入本機網站根目錄路徑,如 C:\Web\Apache24\htdocs\abc。

◎ Eingabe “yes”,允許程式複製 web.config 至網站目錄做驗證。

◎ Eingabe “2” 或按 Enter (預設 2),以 RSA 產生 private key。

◎ Eingabe “2”,以產生 apache 適用的 PEM 憑證檔案。

◎ 輸入欲存放憑證檔案的目錄路徑,如 C:\Web\SSL。

◎ Eingabe “2”,為私鑰加上密碼,或輸入 “1” 不加密。

◎ 如果沒有要產生第二份憑證,輸入 “5” 或按 Enter (預設 5) Weitermachen。

◎ 如果沒特殊需求,輸入 “3” 或按 Enter (預設 3) Weitermachen。

◎ 驗證通過後,會在「工作排程器」新增一項檢查憑證更新的排程,如果不需以特定身分執行此工作,輸入 “no” Weitermachen。

◎ 到此,即完成憑證申請。

◎ 接著可在憑證目錄確認剛剛產生的憑證。

註. *-crt.pem + *-chain-only.pem = *-chain.pem
◎ 在「工作排程器」可以看到新增了一個 WIN-ACME 的項目。

◎ 開啟 apache 的 httpd-ahssl.conf (或 httpd-ssl.conf 或 httpd.conf,看你的環境),增加一組 SSL 的 VirtualHost。
<VirtualHost *:443> SSLEngine on ServerName www.abc.com:443 SSLCertificateFile "C:\Web\SSL\www.abc.com-chain.pem" SSLCertificateKeyFile "C:\Web\SSL\www.abc.com-key.pem" DocumentRoot "${SRVROOT}/htdocs/abc" </virtualhost>
◎ 如果 80 port 的 VirtualHost 不關,但想將 80 自動轉至 443,可在 80 port 的 VirtualHost 增加 “Redirect” 參數。
<VirtualHost *> DocumentRoot C:\Web\Apache24\htdocs\abc ServerName www.abc.com Redirect / https://www.abc.com/ </VirtualHost>
註. https://www.abc.com/ 後面要有斜線,這樣才會將 http://www.abc.com/def 導至 https://www.abc.com/def,否則會變成 http://www.abc.comdef。
[Links]
- Beantragen Sie das Wildcard-Zertifikat "Let's Encrypt" unter Windows | Alt Sen Chang Tan
- Releases · win-acme/win-acme · GitHub
- win-acme
- [Apache] 安裝免費SSL 與設定 80 轉443 fro windows | 散步在海洋中的碼農 – Punkte Stämmen
- Apache 重新定向到 HTTPS – SSL 網站安全證書 – ztabox.com
- Windows 版 Let’s Encrypt for Apache | 老洪的 IT 學習系統