let's encrypt (certbot)

安装

添加源

$ yum -y install yum-utils
$ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

测试certbot是否安装成功

$ sudo certbot certonly

可能会出现报错,对比需求的版本与当前版本是否一致,不用关系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模式
    该模式需要有网站的代理路径,他会在webroot的目录下创建/.well-known/acme-challenge来验证是否绑定该服务器
$ 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模式
    该模式不会校验网站路径,而会绑定校验服务器的443端口,所以需要注意在生成前需要关闭占用443端口的服务,生成验证成功之后再启动即可。
    之后证书失效时进行renew时也需要重复该步骤。
certbot certonly --standalone -d example.com -d www.example.com

更新证书

  • 测试命令
certbot renew --dry-run 
  • cron任务
    --pre-hook 这个参数表示执行更新操作之前要做的事情,因为我有 --standalone 模式的证书,所以需要 停止 nginx 服务,解除端口占用。
    --post-hook 这个参数表示执行更新操作完成后要做的事情,这里就恢复 nginx 服务的启用
15 2 * */2 * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"

最后我们用 crontab 来启动这个定时任务

crontab certbot-auto-renew-cron

你可能感兴趣的:(let's encrypt (certbot))