脚本自动续期ssl证书 Let’s Encrypt

Let’s Encrypt:https://letsencrypt.org/
Let’s Encrypt is a free, automated, and open Certificate Authority.

第一种方法

用 acme.sh申请来自动续期ssl证书
acme说明:https://github.com/Neilpang/acme.sh/wiki/说明

https://www.cnblogs.com/esofar/p/9291685.html

  1. 下载acmecurl https://get.acme.sh | sh 安装完成后必须关闭当前终端,重新开启一个以使acme.sh命令生效
  2. 执行生成和自动更新命令:acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /var/www/mydomain.com/
  3. 安装证书 cd /etc/nginx; mkdir ssl
acme.sh  --installcert  -d  .com   \
        --key-file   /etc/nginx/ssl/.key \
        --fullchain-file /etc/nginx/ssl/fullchain.cer \
        --reloadcmd  "service nginx force-reload"
  1. 配置nginx使用ssl
server {
    listen 80 default_server;
    listen 443 http2 ssl;
    listen [::]:80 default_server;

    ssl_certificate /etc/nginx/ssl/fullchain.cer;
    ssl_certificate_key /etc/nginx/ssl/domain.key;
    #http转https
    if ($scheme = http ) {return 301 https://$host$request_uri;}
    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;
    server_name _;

    ssl_certificate /etc/nginx/ssl/fullchain.cer;
    ssl_certificate_key /etc/nginx/ssl/domain.key;

    location /test {
          proxy_pass       http://127.0.0.1:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
    }
}

前端的Upgrade请求发送给后端服务器,Upgrade和Connection的头信息必须被显式的设置。一旦我们完成以上设置,NGINX就可以处理WebSocket连接了。查看配置在哪里ps -ef|grep nginx
多个域名的话,配多个nginx.conf配置。

  1. 查看是否有每日任务
    crontab -l #查看你的任务
    手动更新证书acme.sh --renew -d domain.com

OK 完成,就是这么简单

第二种方法

通配符证书申请

第三种方法

用certbot来自动续期ssl证书
https://certbot.eff.org/lets-encrypt/centosrhel7-nginx

Let’s Encrypt 是一个免费 SSL 证书发行项目,自动化发行证书,证书有 90 天的有效期。于是有了另外一个项目可以自动安装,自动续期。

直接上网站

  • https://certbot.eff.org/

选择 WEB 服务器版本,系统版本,然后执行脚本即可。

执行完成之后执行 certbot run 跟着步骤就行了。

crontab -e 编辑文件

0 0 1 * * /usr/bin/certbot renew --force-renewal

定时每天检查,如果要过期则自动延期。

你可能感兴趣的:(脚本自动续期ssl证书 Let’s Encrypt)