假設我有一個網域,上面有很多個子域名,在現在沒有SSL無法受到google關愛的眼神。
certbot就是一個很好用的工具
搭配Let’s Encrypt 免費的SSL
其實,可以買足90%以上的需求
Certbot自動模式可以一次滿足所有的子域名需求
100個域名之內,可以使用一張憑證處理
但是所有的簽署域名都是在憑證上出現
這個看起來好像不是這麼的「專業」
系統需求
1.DNS Service
我用的是CloudFlare
2.Linux Server
3.Apache / NGINX 服務
第零步,安裝certbot
sudo apt-get update
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
第一步 準備進行授權,在CLI 命令行執如是指令
certbot certonly –manual –agree-tos \
-d “*.你的域名.com” \
-d 你的域名.com \
–email 你的信箱 \
–preferred-challenges dns \
–manual-public-ip-logging-ok \
–server https://acme-v02.api.letsencrypt.org/directory \
–rsa-key-size 4096
–rsa-key-size 4096 預設的key長度是2048,如果需要,可以生成4096的長度
第二步 驗證DNS
過程中會要求進行DNS驗證
在DNS中新增一組TXT
NAME 是 _acme-challenge
VALUE 是一組亂碼
新增好,靜待生效
因為我是用CloudFlare
大約一分鐘內就生效了
可以使用dig指令來驗證
dig TXT _acme-challenge.你的域名.com
正確無誤,就會出現設定的那個亂碼
確定無誤就可以完成驗證了
後面會有憑證的路徑
第三步 修改 nginx 並 reload
在 nginx 中新增
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/SSL存放路徑/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/SSL存放路徑/privkey.pem;
都修改好之後,執行下面指令
systemctl reload nginx
沒有出現錯誤,就可以開瀏覽器來確認
第四步 確認證憑證
確認發證無誤
確認是Wildcard憑證無誤
確認效期無誤(90天免費,可以無限續約)
第五步 設定自動renew SSL
效期只有90天,到期前30天可以更新憑證
指令如下
crontab -e
新增
10 4 * * * certbot renew
我是設定早上4:10 自動更新
如果還沒有需要更新,會出現下面的字樣
Cert not yet due for renewal
說在最後,我的Proxmox VE / Openmediavault 都加好SSL
配合 CloudFlare DDNS 服務,好用自然不在話下
參考文章
Rate Limits
Let’s Encrypt Wildcard 申請流程
解析 Certbot(Let’s encrypt) 使用方式
20220207 昨天是照官方文件使用Web匯入SSL 憑證
官方文件說,有支援let’s encrypt的憑證直接匯入
可以直接用,不用像ssh需要轉換(昨天查到的方式也是直接貼沒有錯)
但是好像也只能透過Web Gui
不能像nginx 複製憑證後直接reload
文章出處:Certificates
20220709 certbot 自動更新又失敗了
每三個月搞一次,老實說有一點煩
再來看看吧,如果真的受不了
看看是不是要改用其他的方式取得授權
隨機文章
- Ubuntu (2009-12-12)
- 新聞評論-入聯戳記寄中國退信 不涉賠償 笑死人了 (2007-11-16)
- Delphi再一次親密接觸 (2009-07-18)
- [chatGPT 測試] 寫一隻 php 連線 mysql 檢查指定的路徑 低於設定的百分比,進行發信 (2023-10-24)
- 好專業的關貿網路,連想都不想就叫我補檔 (2013-02-06)