使用certbot提供https证书服务

问题:阿里云服务器(centos7)的1年免费域名证书到期了。

方案:lets-encrypt提供了新的客户端。官方文档:https://certbot.eff.org/lets-encrypt/centosrhel7-nginx

  1. 安装客户端

yum -y install yum-utils

yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

yum install python2-certbot-nginx

  1. 解决运行报错

运行certbot --nginx 报错:ImportError: No module named 'requests.packages.urllib3‘


pip install --upgrade pip

pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3

  1. 生成证书

nginx -s stop // 先停止nginx服务,第一次没停服务,导致失败,没有live目录

certbot certonly --standalone -d "abc.com"  // 成功的话提示Congratulations, 按道理可以一次加多个域名,没成功,估计是哪块语法有问题

默认在/etc/letsencrypt下会生成live目录,下面有abc.com目录

  1. 修改nginx证书配置路径

ssl_certificate /etc/letsencrypt/live/abc.com/fullchain.pem;

ssl_certificate_key  /etc/letsencrypt/live/abc.com/privkey.pem;

  1. 重启nginx,ok
    6. 证书有效期3个月,可以设置自动更新
crontab -e
0 2 1 * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew 

异常:
1.chrome访问正常,safari 有问题,证书提示名称不一致
原因:domain.comwww.domain.com 用了一套证书,之前用阿里云申请的证书没问题,换了以后有问题。给www的重新生成证书就可以了

  1. 自动更新没起作用
    certbot renew命令报错,需要先停止nginx
  2. 收到邮件提醒,TLS-SNI-01 validation is reaching end-of-life
    按照提示升级certbot,https://community.letsencrypt.org/t/how-to-stop-using-tls-sni-01-with-certbot/83210
    renew后没起作用,用上面的脚本手动更新就可以了
    4.Another instance of Certbot is already running
    find / -type f -name ".certbot.lock" -exec rm {} ;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一回算是结束了。有人说了,这么写,金瓶梅可一百回,你这要扩展成什么样啊!这什么时候才能写到那什么啊! ...
    蠹鱼草堂阅读 9,113评论 0 0
  • 今天这篇我想反思一下这段时间的情况了。 近来状况不是很好,已经很长时间没有合理的输出了,虽然也有在输入,但是不成体...
    凭海琳风阅读 1,943评论 3 0
  • 面试题集锦 iOS面试题及答案1iOS面试题及答案2iOS进阶面试题及答案3 一. CoreAnimation 相...
    JaiUnChat阅读 5,415评论 0 25
  • 每一首诗,都是书香玉;每一念起,都是满庭芳。一切终将暗淡,只有书籍,才是光芒。 欢迎大家一起走进“相约、相阅人间四...
    我叫在水一方阅读 6,902评论 0 3