2025更新年最新方法:
CentOS + Nginx 自动续期SLL
https://xigk.com/blog/index.php/archives/1557/

2020年写的:
Let’s Encrypt:https://letsencrypt.org/
Let’s Encrypt is a free, automated, and open Certificate Authority.
key:wss,https,ssl

第一种方法

用 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  <domain>.com   \
        --key-file   /etc/nginx/ssl/<domain>.key \
        --fullchain-file /etc/nginx/ssl/fullchain.cer \
        --reloadcmd  "service nginx force-reload"

4) 配置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配置。

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

OK 完成,就是这么简单

第二种方法

通配符证书申请

第三种方法

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

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

直接上网站

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

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

在 crontab -e 编辑文件

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

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

标签: none

添加新评论