Letsencrypt SSL Certificate

在這裡紀錄/描述如何在Linux安裝申請更新Letsencrypt SSL憑證
嚴格來說這是關於SSL for AWS Lightsail WordPress的說明
並且以本站的網域作為範例。

首先,網域只能夠是標準的英文ASCII Code,所以非英文網域是不支援的

sudo apt-get install git
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

/home/bitnami/letsencrypt/letsencrypt-auto certonly -w
sudo /home/bitnami/letsencrypt/letsencrypt-auto certonly -w /home/bitnami/apps/wordpress/htdocs -d www.avex.idv.tw 
How would you like to authenticate with the ACME CA?
 — — — — — — — — — — — — — — — — — — — — — — — — — 
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)

Select the appropriate number [1–2] then [enter] (press ‘c’ to cancel): 2

我個人是選2讓他產生一個檔案到網站跟目錄才去做驗證(所以記得要Sudo),如果沒什麼問題就會往下走

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for www.avex.idv.tw
Using the webroot path /home/bitnami/apps/wordpress/htdocs for all unmatched domains.
Waiting for verification…
Cleaning up challenges

這裡會提示你,他產生出來的檔案放在哪裡,請記得把結果複製出來或作個筆記!

IMPORTANT NOTES:
 — Congratulations! Your certificate and chain have been saved at:
 /etc/letsencrypt/live/www.avex.idv.tw-0001/fullchain.pem
 Your key file has been saved at:
 /etc/letsencrypt/live/www.avex.idv.tw-0001/privkey.pem

我的網址後面多了一個-0001主要是因為之前申請過一次www.avex.idv.tw/blog.avex.idv.tw
但是因為blog.avex.idv.tw已經沒再用了,我是用CNAME的方式指到www.avex.idv.tw來
導致我後來不能用之前的憑證作展延,就乾脆再申請一個新的憑證

接著來編輯一下設定檔

sudo nano /home/bitnami/stack/apache2/conf/bitnami/bitnami.conf

找到下面這幾行路徑換掉

SSLCertificateFile "/etc/letsencrypt/live/www.avex.idv.tw-0001/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/www.avex.idv.tw-0001/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/www.avex.idv.tw-0001/fullchain.pem"

接著重新啟動服務才能套用到這憑證,這支shell會自動照順序停止服務和啟動服務

sudo /opt/bitnami/ctlscript.sh restart

這樣就完成了。
由於Letsencrypt的免費憑證服務一次效期只有90天,所以當然要設定一下排程,讓他自己去Renew

sudo crontab -e

編輯,每個月1號凌晨一點自動更新並重啟服務,記得編輯完要存檔(Write out)。

0 1 * 1 * /home/bitnami/letsencrypt/letsencrypt-auto renew | sudo /opt/bitnami/ctlscript.sh restart

接著來這個網站確認一下SSL憑證有沒有正常運作 https://www.ssllabs.com/ssltest(新分頁)

舊憑證
更新過後的憑證

接著開始編輯Wordpress設定讓它強制永遠啟用。

sudo nano /opt/bitnami/apps/wordpress/conf/httpd-prefix.conf

把下面內容放在設定檔頂端,請記得換成自己的網域名稱,記得存檔。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) http://54.238.253.33/$1 [R,L]
然後再一次重啟服務
sudo /opt/bitnami/ctlscript.sh restart

打完收工。