一、 環(huán)境準(zhǔn)備
- win10以上操作系統(tǒng)
- 安裝 Certbot
- 申請(qǐng)阿里云\騰訊云域名
- 安裝 nginx 1.3以上版本
二、Certbot 安裝及 SSL 證書生成
Certbot 是一個(gè)免費(fèi)、開源工具,用于自動(dòng)化在Web服務(wù)器上獲取和更新SSL/TLS證書。它可以通過Let’s Encrypt
服務(wù)獲取免費(fèi)的SSL/TLS
證書,這些證書用于保護(hù)網(wǎng)站和應(yīng)用程序的通信,確保數(shù)據(jù)在傳輸過程中是加密和安全的。
1. Certbot 下載
打開certbot官網(wǎng)地址,選擇相應(yīng)的操作系統(tǒng)及代理軟件,此處以 Windows操作系統(tǒng)、nginx 服務(wù)為例,下載地址為 https://github.com/certbot/certbot/releases/latest/download/certbot-beta-installer-win_amd64_signed.exe

2.運(yùn)行下載的 .exe 文件,進(jìn)行安裝
安裝完成后,以管理員模式打開 Windows PowerShell
命令行工具,輸入 certBot
,

以上則表名安裝成功。
3.申請(qǐng)證書
- 域名分為主域名 http://test.com 和泛域名 http://*.test.com。
- 常用命令如下:
certbot certonly -d *.test.com --manual --preferred-challenges dns
certbot certonly -d test.com --manual --preferred-challenges dns
- 此文以申請(qǐng)主域名證書 為例,輸入主域名信息;
certbot certonly -d test.com --manual --preferred-challenges dns
- 輸入個(gè)人郵箱信息;
- 確認(rèn)協(xié)議信息及支持信息,兩個(gè)都選擇 【yes】;

4.驗(yàn)證 DNS ,需要按照提示,在你的域名服務(wù)商處,添加對(duì)應(yīng)的 DNS TXT 解析記錄。

此處我以我的阿里云域名為例,進(jìn)行相應(yīng)配置:
- 檢測(cè)生效后,按回車?yán)^續(xù),將生成證書及秘鑰信息:

如果成功的話,它會(huì)生成以下文件:

三、nginx 配置
下來配置 nginx 配置,我主要使用 nginx 代理我的前端項(xiàng)目,nginx 請(qǐng)自行安裝。
我的 nginx 默認(rèn)配置文件在nginx/config/nginx.conf
。
以www.test.com 為例,在nginx/config/nginx.conf 文件中,內(nèi)容如下:
server {
listen 443 ssl;
server_name www.test.com;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
root /usr/share/nginx/html;
location / {
root html;
index index.html index.htm;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
如果能夠正常進(jìn)行域名https
訪問nginx頁面,則本地配置合適:

四、續(xù)期
Certbot 是使用的Let’s Encrypt申請(qǐng)的免費(fèi)證書,只有 3 個(gè)月的有效期,到期之后我們需要再次續(xù)期才能繼續(xù)使用 HTTPS 協(xié)議。
4.1 手動(dòng)續(xù)期
你需要自己記錄證書到期的時(shí)間,在證書到期之前,從新生成一個(gè)新的證書
certbot certonly -d test.com --manual --preferred-challenges dns
代碼解讀
然后根據(jù)上文中的 DNS TXT 解析 步驟再配置一次即可,證書保存位置沒有變化的話,NGNIX 不需要更新配置。
4.2 自動(dòng)續(xù)期(待驗(yàn)證)
每次都手動(dòng)配置 DNS 解析挺麻煩的,而且還容易遺忘,更新不及時(shí)容易造成服務(wù)崩壞。
certbot 提供了一個(gè) hook,可以編寫一個(gè) Shell 腳本,在需要續(xù)期的時(shí)候讓腳本調(diào)用 DNS 服務(wù)商的 API 接口動(dòng)態(tài)添加 TXT 記錄,驗(yàn)證完成后再刪除此記錄,達(dá)到自動(dòng)續(xù)期的效果。
使用阿里云服務(wù)的話,可以參考腳本:
GitHub 項(xiàng)目 certbot-dns-aliyun
項(xiàng)目地址: https://github.com/justjavac/certbot-dns-aliyun
安裝和使用指南在README 中有詳細(xì)說明
?轉(zhuǎn)自https://blog.csdn.net/dazhong2012/article/details/144720569
該文章在 2025/6/10 15:06:36 編輯過