如何强制全站 https 访问?

2015-09-14 19:23:39 +08:00
 Daddy

用的网上配方,没效果,仍然不是全站 https

server {
listen 80;
server_name xxx.com www.xxx.com;
#rewrite ^ https://$server_name$request_uri? permanent;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
server_name xxxx.com www.xxx.com;
index index.html index.htm index.php;
root /home/wwwroot/xxx.com;
ssl on;
ssl_certificate /usr/local/nginx/conf/ssl/xxx.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/xxx.key;
ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security max-age=63072000;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
}

3557 次点击
所在节点    问与答
19 条回复
zhjits
2015-09-14 20:17:05 +08:00
listen 443 ssl;
zhjits
2015-09-14 20:18:10 +08:00
另: add_header X-Frame-Options DENY; 过于严格,可能和部分应用不兼容,建议改为 add_header X-Frame-Options SAMEORIGIN;
virusdefender
2015-09-14 20:35:45 +08:00
没效果是怎么个表现?
Daddy
2015-09-14 20:42:43 +08:00
@zhjits 不行呀, IE/firefox 都不行, chrome /opera 可以
Daddy
2015-09-14 20:43:38 +08:00
@virusdefender 直接输入域名,访问的还是 http ,没自动切换到 https
kozora
2015-09-14 20:44:30 +08:00
证书链对没?
Daddy
2015-09-14 20:49:05 +08:00
@kozora 可以 https 访问,只是没法强制完全 https
xfspace
2015-09-14 20:50:04 +08:00
- -你 reload 没有
Daddy
2015-09-14 20:51:05 +08:00
@xfspace 当然每次修改都重启 nginx 了
yinheli
2015-09-14 20:54:11 +08:00
再增加一条

proxy_set_header X-Forwarded-Proto "https";

另外, 你的程序本身是否支持.
xfspace
2015-09-14 20:54:56 +08:00
@Daddy ctrl+f5 看看,可能是浏览器缓存?
yywudi
2015-09-14 20:59:23 +08:00
rewrite ^/(.*) https://<domain>/$1 permanent;
Daddy
2015-09-14 21:00:38 +08:00
@yinheli 手动加 https 是没问题的,就是没有强制完全 http---->https

@xfspace 不要说刷新了,都清空缓存的,本机 多个浏览器,加虚拟机跑的 Midori 浏览器。 chrome 可以我都怀疑是 chrome 的记忆, chrome 你访问同一站点多次 https ,以后你仍然是自动给你补上 s 来访问
cosmosz
2015-09-14 21:03:23 +08:00
rewrite 那条别 comment out 了
Daddy
2015-09-14 21:06:19 +08:00
@yywudi 不行呢~
Daddy
2015-09-14 21:20:11 +08:00
@zhjits @xfspace @yinheli @yywudi @cosmosz

OMG , 23333 了,我忘了域名已被认证,也就没法 80 跳转 443 了,实质上本来就已经可以了,可恶的 chrome/opera 又可以直接跳, firefox 就怎么也不行,也就没想到这一层去。谢谢大家
yywudi
2015-09-14 21:23:10 +08:00
@Daddy 你需要域名转发功能 :)
Daddy
2015-09-14 21:30:25 +08:00
@yywudi 嗯,直接域名解析 301 跳转,不 nginx 跳转。 chrome 这点不好,只要你多次访问同一站点的 https ,以后再也不能访问回 http , chrome 会自动补全。
Slienc7
2015-09-14 21:50:22 +08:00
HSTS 并附加 preload
Chrome/Firefox 浏览器无需连接 80 端口,直接走 443
IE 不考虑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/220672

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX