莫菲    

centos7 免费https证书部署,Let's Encrypt nginx / centos 7 free https certificate

7年前发布  · 1375 次阅读
  nginx  centos 

1. Install the Certbot Let's Encrypt Client(yum安装cerbot)

执行:

sudo yum install epel-release

安装成功后执行:

sudo yum install certbot

2.nginx设置

已经安装成功nginx后,可在nginx配置文件夹中添加配置文件。例如我的配置文件夹nginx/conf.d中新建一个le-well-known.conf文件:

server{
	location ~ /.well-known {
        allow all;
	}
}

设置成功后,重启nginx

systemctl restart nginx

3.cerbot初始化

执行

sudo certbot certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com -d www.example.com

按照提示进行操作

4.nginx对应站点配置文件添加证书支持:

详细nginx配置可查阅对应资料,下面截取部分:

server {
        listen       443 ssl;
        server_name  example.com www.example.com;

        ssl                  on;
        ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;

        ssl_session_timeout  1m;

        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers   on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        ******
        }

备注:ssl_certificate和ssl_certificate_key的目录具体需要改为刚刚成功生成的证书的具体位置

5.重启nginx,保证80端口和https默认的443端口处于开放状态。

保证Nginx正常运行,且80和443端口开放状态

6.设置自动更新

证书的有效期为90天,可以在过期前30内执行,更新证书

sudo certbot renew

设置自动更新:

sudo crontab -e

添加代码:

30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
35 2 * * 1 /usr/bin/systemctl reload nginx

保存退出,上面代码可在每周一凌晨2:30执行更新证书,并在2:35分执行nginx重启。