本案中,用 acme.sh 申请了通配符证书,即:[*.xxxx.com],但是配置证书到Nginx 的时候,出现了几个问题
1、域名解析 CNAME 配置
严格根据 freessl 申请证书时给出的名称,进行配置
2、域名解析 A 配置
需要将域名与服务器关联起来,并且 xxxx.com,www.xxxx.com 和 *.xxxx.com 都添加一条记录
3、Nginx 服务器配置
- 问题1:需要解决 www.xxxx.com 和 xxxx.com 之间跳转的问题
- 问题2:需要解决 http:// 和 https:// 之间跳转的问题
经过实测,问题完美解决,最终Nginx配置如下:
server {
listen 80;
listen 443 ssl;
ssl_certificate /root/.acme.sh/*.xxxx.com/*.xxxx.com.cer;
ssl_certificate_key /root/.acme.sh/*.xxxx.com/*.xxxx.com.key;
server_name xxxx.com;
return 301 https://www.xxxx.com$request_uri;
}
server {
listen 80;
server_name www.xxxx.com;
return 301 https://www.xxxx.com$request_uri;
}
server {
listen 443 ssl;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # TLS
server_name www.xxxx.com;
ssl_certificate /root/.acme.sh/*.xxxx.com/*.xxxx.com.cer;
ssl_certificate_key /root/.acme.sh/*.xxxx.com/*.xxxx.com.key;
ssl_prefer_server_ciphers on;
client_max_body_size 5m;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /abc.txt {
alias /data/static/abc.txt;
}
}
4 总结
本文档只记录了最容易出问题 的步骤,以及解决方法,仅供参考,不一定唯一。
其他步骤,如:申请证书,安装证书等,参照引导即可,一般没有什么问题,不记录在此