透過 WIN-ACME 申請並自動更新 Windows Apache 上的 Let’s Encrypt 憑證

  先前有寫過一篇「在 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。

 

【相關連結】

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.