概述
nginx是一个多数人都在用的web容器,并且更适合于做负载均衡,certbot则是一个免费ssl证书的CA,两者结合可以轻松的搭建https网站,但是经常要想着续费会是一件 非常头疼的事情,另外,网上某些教程(可能不是某些,抄来抄去,就成了一大堆了)对于nginx监听80端口的则是无能为力,本文将使用一种更为方便的方式自动续费。
安装Nginx
不废话,直接 epel+yum
yum install epel-release -y yum install nginx -y
Nginx配置文件
在/etc/nginx/conf.d/目录下创建example.com.conf(文件名方便记忆即可)
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; }
Nginx服务管理
这个不想多说,先Enable服务项
systemctl enable nginx
启动/停止/重启
systemctl start/stop/restart nginx
安装Certbot
前面装了epel了,直接yum之
yum install certbot -y
申请某域名(例如*.example.com)的证书
注意:申请或续费都需要空闲80端口来做验证,这里如果nginx监听了80端口,一定要关掉
至于填自动续费的坑后面会提到
certbot certonly -d *.example.com -d example.com
自动续费
首先检查运行状态
systemctl status crond
如果没有启动,先enable它再start它
systemctl enable crond systemctl start crond
编辑计划任务
crontab -e
输入下面的表达式,让他每天都尝试一次关闭nginx->更新->启动nginx,到了最后30天的时候就会成功
0 0 * * * "systemctl stop nginx ; /bin/certbot renew ; systemctl restart nginx"