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
- 下载acme
curl https://get.acme.sh | sh
安装完成后必须关闭当前终端,重新开启一个以使acme.sh命令生效 - 执行生成和自动更新命令:
acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /var/www/mydomain.com/
- 安装证书
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"
- 配置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配置。
- 查看是否有每日任务
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
定时每天检查,如果要过期则自动延期。