acme.sh在nginx环境配置,ssl证书测试
续写acme.sh使用记录,从 letsencrypt 生成免费的证SSL书.-CSDN博客
一、安装证书(域名需替换为自己的)
acme.sh --install-cert -d codechrono.cn -d www.codechrono.cn \
--key-file /etc/nginx/cer/acmesh/codechrono.cn.key \
--fullchain-file /etc/nginx/cer/acmesh/codechrono.cn.pem \
--reloadcmd "nginx -s reload"
(一个小提醒, 这里用的是 service nginx force-reload, 不是 service nginx reload, 据测试, reload 并不会重新加载证书, 所以用的 force-reload)
二、nginx.conf配置
注意,路径一和路径二需替换为自己服务器的目录,步骤一也必须替换
# 443 api配置server {listen 443 ssl;server_name codechrono.cn;ssl_certificate_key /etc/nginx/cer/acmesh/api.codechrono.cn.key;//路径一ssl_certificate /etc/nginx/cer/acmesh/api.codechrono.cn.pem;//路径二location / {proxy_pass http://127.0.0.1:8088; # 后端服务URLproxy_http_version 1.1;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;}
三、证书验证
1、验证方法
访问 ssllabs.com 输入你的域名,检查 SSL 的配置是否都正常:
https://ssllabs.com/ssltest/analyze.html?d=codechrono.cn
确保验证结果有 A 以上,否则根据提示调整问题
2、修正办法
ssl_dhparam 未配置
将导致 ssllabs.com 的评分降到 B,并给 This server supports weak Diffie-Hellman (DH) key exchange parameters. Grade capped to B. 的警告。
ssl_prefer_server_ciphers on 也是一个必要的配置,否则会 A+ 变成 A-;
如果你需要兼容老系统或老浏览器的话,你需要配置 ssl_ciphers,详见 Mozilla Server_Side_TLS 的介绍,Nginx 里面 ssl_ciphers 默认值是