ssl證照使用 Let’s Encrypt 免費證照,證照有效期是90天,需要執行定時更新證照指令碼
參考:
https://www.jianshu.com/p/6ea81a7b768f
https://learnku.com/laravel/t/2525/using-certbot-lets-encrypt-small-step-run-towards-https
使用官方的申請工具 Certbot, 官網有安裝步驟,選擇系統有相應的步驟
這裡使用的ubuntu,nginx
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-nginx
更快捷的申請證照方式(推薦)
certbot --nginx
在執行此命令時有以下的錯誤,以為這個add-apt-repository universe執行的有問題
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 299: ordinal not in range(128)
又執行了一遍,已經全域性設定過了
'universe' distribution component is already enabled for all sources
參考以下文章,執行此命令
https://github.com/certbot/certbot/issues/...
grep -r -P '[^\x00-\x7f]' /etc/letsencrypt /etc/nginx
執行後出現下圖
把漢字刪除後後再執行 certbot --nginx後正常
以下申請方式可以參考
首先設定/.well-known/acme-challenge/ 節點
server {
listen 80;
server_name a.com;
error_page 500 502 503 504 /50x.html;
# 配置此節點確認站點所有權
location /.well-known/acme-challenge/ {
alias /var/www/challenges/;
try_files $uri =404;
}
location / {
proxy_pass http://localhost:9005;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
申請證照的三種方式
#推薦 手動建立認證檔案
certbot certonly --manual -w /var/www/challenges/ -d a.com # 目錄是建立檔案可以被外網訪問的一個資料夾,可以是專案資料夾,也可以是自定義的,自定義的需要在nginx上單獨宣告
#這種方式也可以,和上面的基本一致,上面的是手動生成檔案,這條是自動生成檔案,可能不成功
certbot certonly --webroot -w /var/www/challenges/ -d a.com
#這種方式不推薦,需要關閉nginx服務才能執行
certbot certonly --standalone --email your@email.com -d a.com
執行第一種命令方式,比較重要的一點是上面 /var/www/challenges 這個目錄下需要手動生成一個檔案,內容在執行命令後會得到,目的是讓外網能檢測到這個站點是自己的站點,參考下面介紹
有幾個選項,選擇選擇一下 A 或者 Y
然後重點是下面,複製這個字串,然後到/var/www/challenges建立一個檔案ZIVnpTqot49eJ35qVjPS8_fONP0TV1AMtQDODffrb6g,內容為ZIVnpTqot49eJ35qVjPS8_fONP0TV1AMtQDODffrb6g.zrG5oFD2J6jl1kToZ-gFtyrO6rPU-VGyNq-kHZ8PKPg,然後訪問一下http://a.com/.well-known/acme-challenge/ZIVnpTqot49eJ35qVjPS8_fONP0TV1AMtQDODffrb6g,可以訪問再按回車下一步
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:
ZIVnpTqot49eJ35qVjPS8_fONP0TV1AMtQDODffrb6g.zrG5oFD2J6jl1kToZ-gFtyrO6rPU-VGyNq-kHZ8PKPg
And make it available on your web server at this URL:
http://a.com/.well-known/acme-challenge/ZIVnpTqot49eJ35qVjPS8_fONP0TV1AMtQDODffrb6g
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
成功後的提示
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/a.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/a.com/privkey.pem
Your cert will expire on 2019-05-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
本作品採用《CC 協議》,轉載必須註明作者和本文連結