HTTP 访问被拦截,如何强制用户访问 HTTPS?

2015-09-04 01:57:17 +08:00
 wske
海外站有 a 敏 c 感 b 词 d ,网站被国内拦截(浏览器显示“连接已中断”,但域名可正常解析,可被 ping )

而替换主页内容( e 敏 r 感 t 词 y 消失)后,网站则立即可以被访问

现布置 SSL 后,网站即便有敏 a 感 b 词 c 也依然可以被访问。

现在问题来了,除非用户手动输入 https:/www.abc.com ,否则默认依然是 http://www.abc.com ,结果依然被拦截。

求解。
7435 次点击
所在节点    问与答
16 条回复
choury
2015-09-04 02:01:34 +08:00
自己做个跳转
lavadore
2015-09-04 02:06:30 +08:00
@choury 都被拦截了怎么跳转?请求都到不了服务器
choury
2015-09-04 02:08:29 +08:00
@lavadore 你不是说没有敏感词就能访问吗?还是说敏感词是域名?
wske
2015-09-04 02:08:41 +08:00
@choury
客户 http 发送请求打开网站
网站发送指令跳转到 https
被拦截
客户收不到指令 超时 错误页面

实测,挂上 V 屁嗯后,访问 abc.com 会直接跳转到 https
但是在国内,无法跳转,直接失败了。
badcode
2015-09-04 02:08:48 +08:00
t/214927
badcode
2015-09-04 02:08:59 +08:00
wske
2015-09-04 02:10:15 +08:00
@choury

域名应该不是敏感词
1. 被拦截的情况下,域名依然可以正确被解析,被 PING
2. 当首页换了内容(确保干净),域名、网站就一切正常了。
choury
2015-09-04 02:10:27 +08:00
@wske 那是敏感词在反回的跳转链接或者域名本身就是敏感词
abelyao
2015-09-04 02:15:27 +08:00
我好奇的是墙的原理,是在网站响应内容之后,回到国内的路上做内容检测吧?那如果楼主的服务器检测到是 80 端口的请求,直接返回一个跳转到 https 的响应,这个响应就不包含敏感内容了,还会被拦截吗?
choury
2015-09-04 02:17:06 +08:00
@abelyao 他这明显就是跳转链接里直接就含有敏感词
xifangczy
2015-09-04 02:20:08 +08:00
@choury 跳转怎么会带有敏感词?除非是用 JS 跳转
abelyao
2015-09-04 02:24:20 +08:00
@choury @xifangczy 也就是 url 本身含有敏感词咯?那如果是域名问题就只能换域名了,如果域名没问题是资源名的话就好办多了。
wske
2015-09-04 02:26:10 +08:00
目前采用如下的设置,是无效的(挂上 V 则有效)。
server {
listen 80;
server_name xxx.net www.abc.com;
rewrite ^/(.*) https://www.abc.com/$1 permanent;
}
server
{
listen 443;
.........................
}
choury
2015-09-04 02:32:33 +08:00
@wske 我再重复一遍,我不想再说第三遍了,请检查你的 url 里是否含有敏感词
xierch
2015-09-04 03:17:59 +08:00
HSTS ,然后申请加入浏览器 preload 表
会在本地直接跳转到 HTTPS

https://blog.sorz.org/p/hsts-preload-list/
invite
2015-09-04 07:01:03 +08:00
不管访问哪个 HTTP 页面,直接跳转到首页!然后在让他们重新访问!

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

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

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

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

© 2021 V2EX