簡介:
理論上,我們自己也可以手動制作一個 SSL 安全證書,但是我們自己簽發的安全證書瀏覽器信任,所以我們需要被信任的證書授權中心( CA )簽發的安全證書。而一般的 SSL 安全證書簽發服務都需要付費,且價格昂貴,不過為了加快推廣 https 的普及, EEF 電子前哨基金會、 Mozilla 基金會和美國密歇根大學成立了一個公益組織叫 ISRG ( Internet Security Research Group ),這個組織從 2015 年開始推出了 Let’s Encrypt 免費證書。這個免費證書不僅免費,而且還相當好用,所以我們就可以利用 Let’s Encrypt 提供的免費證書部署 https 了。
ubuntu系統操作
使用之前:請更新ubuntu鏡像源
推薦阿巴巴:https://developer.aliyun.com/mirror
mv /etc/apt/sources.list /etc/apt/sources.list.back vi /etc/apt/sources.list
使用以命令,復制阿里雲的鏡像源到此文件即可
安裝certbot
add-apt-repository ppa:certbot/certbot apt update apt install certbot
可使用查看版本命令是否成功
certbot --version
生成SSL證書
certbot certonly --preferred-challenges dns --manual -d *.baidu.com --server https://acme-v02.api.letsencrypt.org/directory
參數:
--preferred-challenges dns: 認證方式選擇DNS, 泛域名支持DNS
--manual: 手動驗證模式
-d *.baidu.com: 就是要申請的泛域名了
--server https://acme-v02.api.letsencrypt.org/directory: 泛域名證書是新功能, 如果要使用就得加上這個參數
生成時根據提示,在你的域名下加入TXT記錄
加入過后,可通過些命令查看是否解析成功
windows
nslookup -qt=TXT _acme-challenge.xx.com
ubuntu
nslookup 回車 set querytype=TXT 回車
_acme-challenge.xx.com 回車
另外經測試使用雲加速的DNS解析域名無法生成成功,本人使用新網的DNS生成成功
證書生成成功
證書有效期為3個月左右,需要手動續期
由於我們之前網站是 剛生成的 Let’s Encrypt 證書,到4月30日才到期。現在去 renew 太早了,Certbot 直接把我們給否了。
查看生成證書生成的配置信息
cd /etc/letsencrypt/renewal vim xx.conf
#手動測試,查看證書過期時間 certbot renew #忽略證書過期時間,直接重置證書時間 certbot renew --force-renewal
如果需要在IIS上使用需要轉換一次 PEM 格式轉為 PFX 格式
openssl pkcs12 -export -out baidu_combined.pfx -in fullchain.pem -inkey privkey.pem
在docker 中生成證書
sudo docker run -it --rm --name certbot \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ certbot/certbot certonly --preferred-challenges dns --manual -d *.baidu.com --server https://acme-v02.api.letsencrypt.org/directory