於是選擇了 https://letsencrypt.org/zh-tw/ 免費的 ssl 的申請機制。
依照 letsencrypt 官網推薦的方式,使用Certbot 來自動建立憑證。但很不幸的 Certbot 並不支援windows 環境,因此耍了點小手段,先在桌機run了 VM,執行了 CentOS7,然後調整寬頻分享器,先把 CentOS7 的 web server 對應到對外的 web server,如此可以讓 CentOS7 自動建立憑證。完成之後,再把憑證 copy 到桌機的 apache server 來用。
PS : 但原本的自動更新憑證機制,則無法在本機執行,所以憑證僅有3個月效期,之後還是得再透過 VM 來更新。
CentOS 獲得的憑證,權限如下:
drwxr-xr-x /etc/pki/site/certs/
-rw-r--r--. 1 root root 1911 2020-03-04 22:19 cert.pem
-rw-r--r--. 1 root root 1647 2020-03-04 22:19 chain.pem
-rw-r--r--. 1 root root 3558 2020-03-04 22:19 fullchain.pem
-rw-------. 1 root root 1708 2020-03-04 22:19 privkey.pem
若要直接搬移到其他 CentOS機器,請注意 SELinux 的安全性,可能讓 apache server 找不到憑證。若有發生設定正確,卻始終找不到憑證的情況,可以試著設定整個目錄的權限:
restorecon -Rv /etc/pki/site/certs/
接著複製到windows上,將apache server 的設定指向這些憑證,也就成功了。
補充:
要開啟 apache server 的 https service,設定動作如下:
conf/httpd.conf
打開 mod_ssl.so 與 socache_shmcb_module (與ssl cache有關) 模組
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
引入 httpd-ssl.conf,打開下面設定。
Include conf/extra/httpd-ssl.conf
conf/extra/httpd-ssl.conf
設定憑證檔還有 Key 的位置
SSLCertificateFile "D:/Program/Apache24/conf/site/certs/cert.pem"
SSLCertificateKeyFile "D:/Program/Apache24/conf/site/certs/privkey.pem"
執行 bin/ApacheMonitor.exe
用監控程式,重新啟動 apache
沒有留言:
張貼留言