Nginx 配置 HTTPS 证书及域名跳转

本案中,用 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 总结

本文档只记录了最容易出问题 的步骤,以及解决方法,仅供参考,不一定唯一。
其他步骤,如:申请证书,安装证书等,参照引导即可,一般没有什么问题,不记录在此

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×