背景
之前一直使用caddy作为博客服务器的软件,但是运行一段时间后,我发现caddy虽然申请证书简单,但是caddy 2软件很多地方都变了,不兼容1版本的配置文件,于是我又改回了nginx使用。但是证书还是需要自动续期的,于是我研究了一下网上各路大神与官方文档,大神们都是自己生成ecc私钥和csr文件去申请证书。我希望这次搞完证书可以使用certbot来自动续期证书,于是我参阅官方文档搞出了一个简易申请ecc证书的方式。
操作
首先,安装certbot
yum install certbot
第二步,按照certbot的申请rsa证书的方式来操作(我这里使用的是dns验证),但是末尾需要加两个参数
certbot --manual --preferred-challenges dns certonly -d blog.linplus.net --key-type ecdsa --elliptic-curve secp384r1
这里说明一下后面两个参数是按照官网文档 Configuration file 想到的,即然能在配置文件中使用,那么命令行是不是也支持呢,于是我进行了大胆的尝试,发现命令行也是支持的。上面的secp384r1申请的是ecc 384位大小的证书。对应也可以换成256位。
之后会进行一系列的确认,然后在 /etc/letsencrypt/live/blog.linplus.net/ 目录下生成对应的文件,引入nginx即可。
第三步,如何续期操作?
在生成pem证书的时候会在目录 /etc/letsencrypt/renewal 目录下同步生成更新证书的配置文件,一般格式为 <域名>.conf ,你会发现配置文件的最后三行就是对证书类型进行规定,是ecc 384位证书。
[renewalparams] //忽略 key_type = ecdsa //ecc加密方式 elliptic_curve = secp384r1 //384位密钥 pref_challs = dns-01, //使用dns进行验证
我们有这个更新证书的配置即可继续操作certbot进行续期操作
/bin/certbot renew --quiet --no-self-upgrade --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
这里,renew参数是指更新;--no-self-upgrade参数是告知certbot本次操作跳过更新检查;--pre-hook 是更新证书之前需要先停止nginx服务;--post-hook 是无论证书是否更新成功,只要更新流程走完后,启动nginx
将上面的更新命令放入cronjob里面或者放入systemd的timer即可。
文章评论