先前有寫過一篇「在 Windows 申請 Let’s Encrypt wildcard 憑證」,該篇主要是透過 “Get HTTPS for free!” 網站以動手動方式申請或展延憑證。最近在架新的網站時,試著用 WIN-ACME 工具來申請,以方便之後使用其自動展延 (renewal) 功能。
◎ 首先至 WIN-ACME 的 GitHub 下載最新的工具,這邊以 win-acme.v2.1.22.1260.x64.pluggable.zip 為範例。
◎ 下載完成並解壓縮後,以「系統管理員身分」執行 wacs.exe。
◎ 接下來,主要都是以 WIN-ACME 官方針對 apache 環境的範例設定。
◎ 輸入 “m”,手動設定各參數。
◎ 輸入 “m” 或按 Enter (預設 m),手動設定各參數。
◎ 輸入要申請憑證的網址,如 www.abc.com。
◎ 為此域名輸入一個好識別的別名,或是按 Enter 使用預設值。
◎ 輸入 “1”,提供本機網站目錄路徑以進行域名驗證。
◎ 輸入本機網站根目錄路徑,如 C:\Web\Apache24\htdocs\abc。
◎ 輸入 “yes”,允許程式複製 web.config 至網站目錄做驗證。
◎ 輸入 “2” 或按 Enter (預設 2),以 RSA 產生 private key。
◎ 輸入 “2”,以產生 apache 適用的 PEM 憑證檔案。
◎ 輸入欲存放憑證檔案的目錄路徑,如 C:\Web\SSL。
◎ 輸入 “2”,為私鑰加上密碼,或輸入 “1” 不加密。
◎ 如果沒有要產生第二份憑證,輸入 “5” 或按 Enter (預設 5) 繼續。
◎ 如果沒特殊需求,輸入 “3” 或按 Enter (預設 3) 繼續。
◎ 驗證通過後,會在「工作排程器」新增一項檢查憑證更新的排程,如果不需以特定身分執行此工作,輸入 “no” 繼續。
◎ 到此,即完成憑證申請。
◎ 接著可在憑證目錄確認剛剛產生的憑證。
註. *-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。
【相關連結】
- 在 Windows 申請 Let’s Encrypt wildcard 憑證 | 老森常譚
- Releases · win-acme/win-acme · GitHub
- win-acme
- [apache] 安裝免費SSL 與設定 80 轉443 fro windows | 散步在海洋中的碼農 – 點部落
- Apache 重新定向到 HTTPS – SSL 網站安全證書 – ztabox.com
- Windows 版 Let’s Encrypt for Apache | 老洪的 IT 學習系統