一个免费SSL证书获取工具
PS:如果是单机的话,不要使用docker来运行nginx,否则会为certbot的操作会增加复杂度。
# 查看主机中的证书信息
certbot certificates
# 证书申请,--dry-run 即是测试环境,-a manual 交互式申请
certbot certonly -a manual --dry-run
# 证书申请,使用nginx插件,--dry-run在该情况下无法使用
certbot --nginx
# 从证书颁发机构撤回SSL证书,交互模式中选择同步删除本地机器中的证书,如果错过了,需要使用delete指令删除
# 证书名称指的是certbot certificates中的Certificate Name
cerbot revoke --cert-name 证书名称
# 从本地机器中删除证书,但是不会从证书颁发机构撤回SSL证书
# 没有任何参数,会进入交互模式
certbot delete
# 证书续期(可以把本机所有的都续期一次)
certbot renew --dry-run
安装certbot
执行证书申请命令,见常用指令。
按交互界面往下操作
如果是申请的精准域名,则按提示操作即可
如果申请的是泛域名,需要进自己的域名供应商里的域名解析里,按格式把certbot提供的字符串加入到解析中
在nginx中通过配置一个文件路径,并把内容放到文件中即可
证书申请成功后,nginx的SSL证书配置,如果是泛域名的SSL证书,可以在http块中直接使用SSL全局指令直接配置,否则需要自己一个个配置
http {
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
}
通过添加定时任务来自动对证书进行续期,每天0点、12点执行一次续期任务,并把信息输出到指定目录
# 编辑定时任务
crontab -e
# 查看定时任务
crontab -l
# 把要执行任务的写入crontab中
0 0,12 * * * /usr/bin/certbot renew --renew-hook "/usr/sbin/nginx -s reload" >> /home/zkpk/certbot-renew.log 2>&1
说明:renew只能,只有快要过期的证书才会进行续期,如果加了参数 --force-renew则不考虑时间直接强制续期