Linux下certpot 免费搭建https协议 并自动更新(2)

centos配置Let's Encrypt并自动更新

检测Git指令

#检查系统是否安装git
git  --version
如果没有安装Git的话,执行以下命令进行安装(如果检测到已安装则略过)

#git 安装
yum install git


假如就放在/home下

#获取letsencrypt
git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt/

./letsencrypt-auto --help

# 获取证书
关于域名验证和证书的获取安装,上面提到了5种方式:
--apache, 
--standalone, 
--nginx, 
--webroot 
--manual,请根据实际情况选择其一

 ./letsencrypt-auto certonly --webroot --email [email protected] -d 123.top -d www.23456.top

然后生成的证书在/etc/letsencrypt/live/下

编辑nginx配置文件    //根据自己情况改变
server {
    listen 443;
    server_name mch.vduok.com;
    ssl on;
    root /var/www/vduok.com/merchant/web;
    index index.html index.php;
    ssl_certificate "/etc/letsencrypt/live/mch.vduok.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/mch.vduok.com/privkey.pem";
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
        try_files $uri $uri/ /index.php$is_args$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
server {
    server_name mch.vduok.com;
    location / {
        rewrite (.*) https://mch.vduok.com$1 permanent;
    }
}

service nginx reload

即可完成SSL的配置,有效期3个月,快到期会自动往上面的邮箱发邮件,后台renew续期即可

/home/letsencrypt/certbot-auto renew

完成续期

加入定时任务,设置了每周一凌晨4点30自动更新证书,并自动重启nginx服务,证书在到期前30天内才能更新,多余的更新会自动忽略掉的,每周更新还有一个好处是更新可能会失败,这样最多还有4次的尝试机会来保证不会过期.

创建脚本 vim /home/updatessl.sh    //创建一个名字为updatessl的脚本

#!/bin/bash

/home/letsencrypt/certbot-auto renew

/sbin/service nginx reload

保存脚本,并给予可执行权限
chmod a+x updatessl.sh

写入定时任务   crontab -e
30 4 * * 1 /home/updatessl.sh >> /home/updatessl.log 2>&1

保存并重启crontd
service crond restart

完成自动更新证书

你可能感兴趣的:(Linux,Nginx)