筆者本來使用 ovh 的 vps 用的好好的,但是被自動調漲價格,申訴也不退費,於是筆者就轉去使用 Azure 的 VPS 了。
剛安裝好 Nginx 並綁定好網域,可以使用網域名稱 SSH 進 Linux ,但是無法使用網域名稱瀏覽網頁,使用 curl 指令查看發現會被自動導向 https:
使用指令查看 linux 的 443 port 發現沒有被監聽:
這是因為在 Nginx 中預設是沒有開啟 443 port 的,因為沒有 SSL 憑證。所以解決方式也很簡單,申請 SSL 憑證並在 Nginx 中啟用 443 port 。
而免費的 SSL 憑證大多時間都很短,每隔幾個月就要手動換一次很麻煩,我們可以使用 certbot 這個免費工具,可以很簡單的自動產生憑證並且上到 Nginx 中。
建立 certbot 指令連結
取得 SSL 憑證並自動設定 nginx
之後依序需要填入:
然後就設定完畢了,使用 https 連線也可以查看網頁了!
補充:
如果出現下面的錯誤,很有可能是因為憑證主機無法連線到這個主機,無法驗證這個網域是不是你的,請檢察 80, 443 port 有沒有開啟
參考資料:
Certbot Instructions
剛安裝好 Nginx 並綁定好網域,可以使用網域名稱 SSH 進 Linux ,但是無法使用網域名稱瀏覽網頁,使用 curl 指令查看發現會被自動導向 https:
curl http://ruyut.app
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.18.0 (Ubuntu)</center>
</body>
</html>
使用指令查看 linux 的 443 port 發現沒有被監聽:
sudo ss -tuln | grep :443
這是因為在 Nginx 中預設是沒有開啟 443 port 的,因為沒有 SSL 憑證。所以解決方式也很簡單,申請 SSL 憑證並在 Nginx 中啟用 443 port 。
而免費的 SSL 憑證大多時間都很短,每隔幾個月就要手動換一次很麻煩,我們可以使用 certbot 這個免費工具,可以很簡單的自動產生憑證並且上到 Nginx 中。
安裝 certbot
在 Ubuntu 中有內建 snap ,透過 snap 安裝 certbot:
sudo snap install --classic certbot
建立 certbot 指令連結
sudo ln -s /snap/bin/certbot /usr/bin/certbot
取得 SSL 憑證並自動設定 nginx
sudo certbot --nginx
之後依序需要填入:
- 緊急聯絡 email
- 是否同意條款
- 是否同意分享 email
- SSL 憑證簽署的網域名稱
然後就設定完畢了,使用 https 連線也可以查看網頁了!
補充:
如果出現下面的錯誤,很有可能是因為憑證主機無法連線到這個主機,無法驗證這個網域是不是你的,請檢察 80, 443 port 有沒有開啟
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
憑證過期與續訂
上面的圖片內有寫到 2024-08-21 會過期,在這之前需要重新簽發憑證。不過也有寫說已經順便幫你建立定時任務,它每天都會自動產生一次,我們可以使用下面的指令查看定時任務:
sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Thu 2024-05-23 19:10:00 UTC 4h 8min left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
參考資料:
Certbot Instructions
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com