安裝
添加源
$ yum -y install yum-utils
$ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
測(cè)試certbot是否安裝成功
$ sudo certbot certonly
可能會(huì)出現(xiàn)報(bào)錯(cuò)絮识,對(duì)比需求的版本與當(dāng)前版本是否一致绿聘,不用關(guān)系pyopenssl的問題,主要是request版本的問題
$ pip list 2>/dev/null | grep requests
$ rpm -q python-requests --queryformat '%{VERSION}\n'
如果不一樣次舌,則修改requests的版本:
$ pip install --upgrade --force-reinstall 'requests==2.6.0'
使用
- webroot模式
該模式需要有網(wǎng)站的代理路徑熄攘,他會(huì)在webroot的目錄下創(chuàng)建/.well-known/acme-challenge來驗(yàn)證是否綁定該服務(wù)器
$ sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.i
- standalone模式
該模式不會(huì)校驗(yàn)網(wǎng)站路徑,而會(huì)綁定校驗(yàn)服務(wù)器的443端口彼念,所以需要注意在生成前需要關(guān)閉占用443端口的服務(wù)挪圾,生成驗(yàn)證成功之后再啟動(dòng)即可。
之后證書失效時(shí)進(jìn)行renew時(shí)也需要重復(fù)該步驟逐沙。
certbot certonly --standalone -d example.com -d www.example.com
更新證書
- 測(cè)試命令
certbot renew --dry-run
- cron任務(wù)
--pre-hook 這個(gè)參數(shù)表示執(zhí)行更新操作之前要做的事情哲思,因?yàn)槲矣?--standalone 模式的證書,所以需要 停止 nginx 服務(wù)吩案,解除端口占用棚赔。
--post-hook 這個(gè)參數(shù)表示執(zhí)行更新操作完成后要做的事情,這里就恢復(fù) nginx 服務(wù)的啟用
15 2 * */2 * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
最后我們用 crontab 來啟動(dòng)這個(gè)定時(shí)任務(wù)
crontab certbot-auto-renew-cron