QUIC实战(三) letsencrypt证书申请和自动续期
部署完QUIC集群之后,原來(lái)申請(qǐng)的https證書(shū)到期了,就嘗試了下重新安裝/更新證書(shū)。
Let’s Encrypt 是一個(gè)自動(dòng)簽發(fā) https 證書(shū)的免費(fèi)項(xiàng)目
Certbot 是 Let’s Encrypt 官方推薦的證書(shū)生成客戶(hù)端工具
因?yàn)槲业膓uic集群是直接把原來(lái)的證書(shū)復(fù)制到自定義的目錄下,所以沒(méi)有安裝過(guò)certbot,先安裝下certbot。
安裝Certbot
先安裝snapd,根據(jù)自己的linux系統(tǒng)(我的是Red Hat Enterprise Linux 8),選擇對(duì)應(yīng)的snapd安裝教程
安裝snapd
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm $ sudo dnf upgrade $ sudo yum install snapd創(chuàng)建軟鏈接
$ sudo systemctl enable --now snapd.socket $ sudo ln -s /var/lib/snapd/snap /snap安裝Certbot
## 更新snap到最新的版本 sudo snap install core sudo snap refresh core ## 去除其余Certbot操作系統(tǒng)包 確保安裝后使用certbot命令使用的是snap sudo apt-get remove certbot sudo dnf remove certbot sudo yum remove certbotsudo snap install --classic certbot #創(chuàng)建軟鏈接 sudo ln -s /snap/bin/certbot /usr/bin/certbotrenew 證書(shū)
因?yàn)樵跈C(jī)器上我已經(jīng)存放了舊的證書(shū),所以我一開(kāi)始的想法是直接更新舊證書(shū)就可以了,先通過(guò)certbot certificates查看下當(dāng)前服務(wù)器的證書(shū)信息
但是結(jié)果沒(méi)有返回當(dāng)前的證書(shū)信息給我。我猜測(cè)可能是由于我之前遷移證書(shū)的時(shí)候只遷移了配置nginx需要的pem文件,存放路徑也和舊集群安裝證書(shū)時(shí)的默認(rèn)路徑不一樣。
我將原來(lái)的證書(shū)路徑/etc/letsencrypt 下的所有文件都打包后上傳到新集群的Nginx機(jī)器上同樣的路徑,再使用certbot certificates 查看證書(shū)就可以看到舊證書(shū)了
接下來(lái)使用certbot renew 命令更新證書(shū)就行了
遇到的問(wèn)題:
在更新證書(shū)的時(shí)候,會(huì)出現(xiàn)如上報(bào)錯(cuò),說(shuō)是訪問(wèn)xxx/.well-known/acme-challenge/xxx
來(lái)驗(yàn)證域名所有權(quán)的時(shí)候出現(xiàn)連接不通的情形。
因?yàn)槭褂胊ws部署的nginx集群,把域名綁定到了負(fù)載均衡器上,一開(kāi)始負(fù)載均衡器只偵聽(tīng)了quic的443端口,添加了對(duì)80端口的偵聽(tīng)之后不再提示無(wú)法連接而返回404錯(cuò)誤碼。
判斷是由于上述路徑無(wú)法訪問(wèn)到的問(wèn)題,多次嘗試后始終匹配不到路徑;最后想到這個(gè)請(qǐng)求是為了驗(yàn)證域名所有權(quán),但是我是將域名綁定到了負(fù)載均衡器上,而不是更新證書(shū)的服務(wù)器上,將域名綁定到服務(wù)器ip上之后再次執(zhí)行certbot renew ,就更新成功了
由于新證書(shū)的路徑跟之前的不一樣,nginx配置文件里的證書(shū)路徑需要修改成如下:
ssl_certificate /etc/letsencrypt/live/you.domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/you.domain.com/privkey.pem;更新完證書(shū)之后又把域名綁定到負(fù)載均衡器上
letsencrypt 證書(shū)請(qǐng)求頻率限制
https://letsencrypt.org/zh-cn/docs/rate-limits/
每個(gè)賬戶(hù)每小時(shí)每域名有最多驗(yàn)證失敗 5 次的限制。該限制次數(shù)在測(cè)試環(huán)境中更高(每小時(shí)允許 60 次驗(yàn)證失敗)
每個(gè)注冊(cè)域名每周最多 5 張重復(fù)證書(shū)的限制
所以在我反復(fù)使用certbot renew命令的時(shí)候可能會(huì)出現(xiàn)達(dá)到上限的提示,過(guò)一段時(shí)間之后再?lài)L試就可以了
最終我只是進(jìn)行了證書(shū)遷移和更新,但是這樣的操作后續(xù)更新還是會(huì)有問(wèn)題(需要把域名綁定到對(duì)應(yīng)的服務(wù)器ip上),還是比較麻煩的。
后續(xù)會(huì)繼續(xù)研究下,如果有好的解決方案會(huì)更新博客。如果大家有處理過(guò)類(lèi)似的問(wèn)題也可以分享下
參考資料:
Installing snap on Red Hat Enterprise Linux (RHEL)
None of the above on CentOS/RHEL 8
總結(jié)
以上是生活随笔為你收集整理的QUIC实战(三) letsencrypt证书申请和自动续期的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux常见问题及其解决方案集锦
- 下一篇: MarkdownPad安装以及绘制 UM