海外域名自动手动免费续费ssl证书
手动版
https://www.sslforfree.com/
这个地址90天的有效期 申请一个ssl证书
自动版
先修改nginx确保 .well-known/acme-challenge/ 路径下的文件能够被 Nginx 正确处理。
server {listen 80;server_name xx.xx.com;location /.well-known/acme-challenge/ {root /etc/nginx/ssl/webroot;}location / {proxy_pass http://127.0.0.1:8030;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}
安装 acme.sh
下载和安装 acme.sh:
curl https://get.acme.sh | sh
加载 acme.sh 环境:
export PATH=$HOME/.acme.sh:$PATH
配置 acme.sh 申请证书
申请证书:
注册邮箱
acme.sh --register-account -m you@qq.com
假设你希望为 xx.xx.com 申请证书,你可以使用以下命令:
acme.sh --issue -d xx.xx.com --webroot /etc/nginx/ssl/webroot
这样就表示已经成功生成了证书,接下来需要将这些证书文件配置到你的 Nginx 服务器中。按照以下步骤操作:
修改ngxin的配置
# HTTP 到 HTTPS 的重定向
server {listen 80;server_name xx.xx.com;# 强制所有 HTTP 请求重定向到 HTTPSreturn 301 https://$host$request_uri;
}
server {listen 443 ssl;server_name 域名;ssl_certificate /root/.acme.sh/xx.xx.com_ecc/fullchain.cer;ssl_certificate_key /root/.acme.sh/auth2.tvmyst.com_ecc/xx.xx.com.key;ssl_trusted_certificate /root/.acme.sh/xx.xx.com_ecc/ca.cer;# Optional: Improve SSL securityssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:RSA-AES256-GCM-SHA384:RSA-AES128-GCM-SHA256:RSA-AES256-SHA256:RSA-AES128-SHA256';ssl_prefer_server_ciphers on;location / {proxy_pass http://127.0.0.1:8030;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}
然后重启测试nginx
nginx -t 测试nginx
systemctl reload nginx 重启nginx
设置自动更新
acme.sh 支持自动更新证书,你可以设置一个定时任务来自动续期证书。通常,可以通过以下命令设置:
sudo crontab -e
然后添加以下行来每天检查证书续期:
0 0 * * * /root/.acme.sh/acme.sh --cron --home "/root/.acme.sh" > /dev/null
这样配置后,acme.sh 会自动尝试续期证书,并且需要你配置 Nginx 以便使用新证书时重新加载 Nginx。
如果你想手动更新证书,那就
acme.sh --issue -d xx.xx.com --webroot /etc/nginx/ssl/webroot
感谢大佬打赏
![在这里插入图片描述]