安裝好apache 是跑在http:// 協定之下,也就是網頁資料傳輸時是不加密的情況,現在的資安要求都需要使用加密協定,
也就是用https:// 開頭的網址。
用 http:// 傳輸的網頁,瀏覽器會顯示不安全:
要改善這個問題可以改用https 加密協定,這樣在傳輸時就會把資料加密,增加傳輸時的安全性。
正規商業模式是要向合法註冊網站購買註冊加密金鑰,會有費用產生,對一般用戶來說既昂貴也不方便,
現在有免費的協助軟體是由Let’s Encrypt提供的證書頒發,先安裝 Let’s Encrypt 客戶端(Certbot)
sudo apt update && sudo apt install certbot python3-certbot-apache -y
然後取得 SSL 憑證(Certificate)執行指令:
sudo certbot --apache
會先要求你輸入email address:
填寫你常用的email即可。
再來會問兩個問題,都答y:
再來就要填入你的網域名稱:
注意:這裡有幾個重點要先確認:
1. 使用這個工具之前你的網域名稱跟DNS必須對應與確認,它會去查詢你的註冊IP跟你的domain name是不是有對應,
如果對應不正確就不會繼續進行而會報錯並停止。
2. 如果網站架在NAT防火牆後面,對應的port forwarding必須先設好,port 80跟443必須能對應轉發到內網IP去,否則一樣會抱錯停止。
我的防火牆設定:
TCP與UDP都要設定。
這就是不正確時候的畫面:
設定正確的畫面:
成功後即可用 https://bell.idv.tw 開啟網頁,如下圖:
certbot好用是好用,但他的憑證有效期限只有三個月,到期之前需要renew一下憑證,
手動更新,執行指令:
sudo certbot renew
手動更新雖然可用但不方便,可以設置定時器定期更新,執行:
sudo crontab -e
在檔案最下面添加一行設定:
0 0 1 * * certbot renew
如下圖:
存檔後離開,以後每個月的1日就會定期更新一下certbot的憑證了。