利用 Let's Encrypt 來自動簽署並更新 SSL 憑證

前言

本篇主要分享,如何利用 Let's Encryptcert bot 來自動簽署以及更新 SSL 憑證

參考網頁

官網

環境

  • Server: NginX
  • OS: Ubuntu 18.04

    DNS 設定

    先將 DNS 設定好, 建一個 A record, 將我們喜歡的 domain 指向我們的 IP

設定檔

  • 這邊使用最簡單的設定, 反向代理 server 內的 9527 port, 若無反向代理需求,可以單純指向專案的 Document root 即可
    sudo vim /etc/nginx/sites-available/yourSiteName
server {
listen 80;
server_name yourDomainName;
access_log /var/log/nginx/test_access_log;

location / {
proxy_pass http://127.0.0.1:9527;
}
}
  • 測試 syntax

    sudo nginx -t
  • 啟用設定

    sudo ln -s /etc/nginx/sites-available/yourSiteName /etc/nginx/sites-enabled/yourSiteName
  • 設完之後,重啟 nginx

    sudo service nginx restart
  • 測試設定
    設定好之後,如果我們 curl http://yourIPOrDomain/endpoint , 應該要可以存取服務

新增 cerbot PPA (Personal Package Archives)

sudo apt-get update && sudo apt-get install software-properties-common && sudo add-apt-repository universe && sudo add-apt-repository ppa:certbot/certbot

安裝 Let’s Encrypt

sudo apt-get install certbot python-certbot-nginx

運行 cerbot

全自動模式

如果你希望 cerbot 可以幫我們全自動完成設定,輸入

sudo certbot --nginx

半自動模式

如果你希望 cerbot 只幫我們拿到憑證,其他我們自己來的話,輸入

sudo certbot certonly --nginx

測試自動更新

到這裡,應該已經可以自動更新憑證了,輸入以下指令測試

sudo certbot renew --dry-run

cerbot 安裝在以下路徑之一:

  • /etc/crontab/
  • /etc/cron.*/*
  • systemctl list-timers

測試簽證是否成功

測試網頁

Gitlab 學習筆記 使用 vsftpd 在 GCP VM 上部署 FTP Server

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×