Let’s Encrypt提供三個月免費的SSL憑證讓大家使用,也允許大家自動renew更新,所以我們採用Certbot讓程式配合排程來自動更新憑證
安裝 Certbot
yum -y install epel-release mod_ssl certbot
取得憑證 例:我想取得以下三個harryjee.com與 www.harryjee.com跟mail.harryjee.com主機名稱的憑證,並提供電子郵件信箱供Let’s Encrypt提供後續相關訊息。
certbot certonly --webroot -w /var/www/html -d harryjee.com -d www.harryjee.com -d mail.harryjee.com --email harry@harryjee.com --agree-tos
驗證成功後,相關憑證會在 /etc/letsencrypt/live/harryjee.com/ 下面。
設定 Apache 設定SSL相關設定。
編輯/etc/httpd/conf.d/ssl.conf
vi /etc/httpd/conf.d/ssl.conf
找到 SSLCertificateFile與SSLCertificateKeyFile及SSLCACertificateFile 這三行並修改相關路徑。
SSLCertificateFile /etc/letsencrypt/live/harryjee.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/harryjee.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/harryjee.com/fullchain.pem
設定完儲存並離開後重新啟動Apache
systemctl restart httpd
建立更新script檔並設定排程自動更新憑證。
vi /root/renew.sh
#!/bin/sh
/usr/bin/certbot renew --quiet --agree-tos --post-hook "systemctl reload httpd"
儲存離開後將renew.sh給予執行權限。
chmod 755 /root/renew.sh
加入排程讓程式每周一上午3點自動更新。
crontab -e
0 3 * * 1 /root/renew.sh > /dev/null 2>&1