前端:Nginx,开启了 HTTPS。配置如下: server { listen 80; listen 443 ssl http2; ssl_certificate /usr/local/nginx/conf/ssl/www.test.com.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/www.test.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_buffer_size 1400; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; ssl_stapling on; ssl_stapling_verify on; server_name www.test.com test.com; access_log off; index index.html index.htm index.php; root /data/wwwroot/www.test.com; if ($ssl_protocol = "") { return 301 https://$host$request_uri; } if ($host != www.test.com) { return 301 $scheme://www.test.com$request_uri; } include /usr/local/nginx/conf/rewrite/discuz.conf; location ~ [^/].php(/|$) { #fastcgi_pass remote_php_ip:9000; fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; } location ~ ..(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { expires 30d; access_log off; } location ~ ..(js|css)?$ { expires 7d; access_log off; } location ~ /.ht { deny all; } }
现在的问题是: 浏览器输入 test.com 可以直接转到 https://www.test.com ;输入 https://test.com 提示无法连接( ERR_CONNECTION_REFUSED ) 去谷歌的那个 HSTS 站点提交也提交不了。 请问有什么可行的解决方案?
1
Binarization 2017-08-12 09:58:37 +08:00 via Android
example:
server { listen 80; listen [::]:80; server_name example.com; return 301 https://$server_name$request_uri; } |
2
Ryans 2017-08-12 09:59:53 +08:00
不是将顶级域名 CNAME 到 www ?
|
3
ETiV 2017-08-12 10:39:45 +08:00 via iPhone
答案就是 1 楼,但 $server_name is 前记得加 『 www.』
|
4
roustar31 OP |
6
msg7086 2017-08-12 10:52:01 +08:00 1
首先。
你裸域解析做成啥样了? |
7
cnZary 2017-08-12 10:52:15 +08:00 1
你 dns 解析过去没?
|
9
roustar31 OP @msg7086 顶级域名 301 跳到 https://www.test.com 。是不是应该改成 http 的?或者 A 指向服务器 IP ?
|
10
imlonghao673 2017-08-12 11:07:16 +08:00 via Android 1
我大概知道了
楼主使用了 DNS 平台提供的 URL 转发,所以不支持 HTTPS :) |
12
imlonghao673 2017-08-12 11:13:33 +08:00 via Android 1
解决方案:
去 DNS 那里使用 A 记录解析过去你自己的服务器 |
13
roustar31 OP |
14
ErnestChan 2017-08-12 11:23:56 +08:00
cloudxns 301
|
16
roustar31 OP |
17
roustar31 OP @ErnestChan 我就是这家的 dns。。。
|
18
CRVV 2017-08-12 13:18:56 +08:00
|
19
Kilerd 2017-08-12 14:14:38 +08:00 via iPhone
这跟 HSTS 有半毛钱关系吗?
|
21
matsuz 2017-08-12 19:05:17 +08:00 via Android
server 段加个 if 判断,如果域名不是 www 就 301 跳转
|