V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wske
V2EX  ›  问与答

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

  •  
  •   wske · 2015-09-04 01:57:17 +08:00 · 7339 次点击
    这是一个创建于 3163 天前的主题,其中的信息可能已经有所发展或是发生改变。
    海外站有 a 敏 c 感 b 词 d ,网站被国内拦截(浏览器显示“连接已中断”,但域名可正常解析,可被 ping )

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

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

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

    求解。
    choury
        1
    choury  
       2015-09-04 02:01:34 +08:00 via Android
    自己做个跳转
    lavadore
        2
    lavadore  
       2015-09-04 02:06:30 +08:00
    @choury 都被拦截了怎么跳转?请求都到不了服务器
    choury
        3
    choury  
       2015-09-04 02:08:29 +08:00 via Android
    @lavadore 你不是说没有敏感词就能访问吗?还是说敏感词是域名?
    wske
        4
    wske  
    OP
       2015-09-04 02:08:41 +08:00
    @choury
    客户 http 发送请求打开网站
    网站发送指令跳转到 https
    被拦截
    客户收不到指令 超时 错误页面

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

    域名应该不是敏感词
    1. 被拦截的情况下,域名依然可以正确被解析,被 PING
    2. 当首页换了内容(确保干净),域名、网站就一切正常了。
    choury
        8
    choury  
       2015-09-04 02:10:27 +08:00 via Android
    @wske 那是敏感词在反回的跳转链接或者域名本身就是敏感词
    abelyao
        9
    abelyao  
       2015-09-04 02:15:27 +08:00 via iPhone
    我好奇的是墙的原理,是在网站响应内容之后,回到国内的路上做内容检测吧?那如果楼主的服务器检测到是 80 端口的请求,直接返回一个跳转到 https 的响应,这个响应就不包含敏感内容了,还会被拦截吗?
    choury
        10
    choury  
       2015-09-04 02:17:06 +08:00 via Android
    @abelyao 他这明显就是跳转链接里直接就含有敏感词
    xifangczy
        11
    xifangczy  
       2015-09-04 02:20:08 +08:00
    @choury 跳转怎么会带有敏感词?除非是用 JS 跳转
    abelyao
        12
    abelyao  
       2015-09-04 02:24:20 +08:00 via iPhone
    @choury @xifangczy 也就是 url 本身含有敏感词咯?那如果是域名问题就只能换域名了,如果域名没问题是资源名的话就好办多了。
    wske
        13
    wske  
    OP
       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
        14
    choury  
       2015-09-04 02:32:33 +08:00 via Android
    @wske 我再重复一遍,我不想再说第三遍了,请检查你的 url 里是否含有敏感词
    xierch
        15
    xierch  
       2015-09-04 03:17:59 +08:00   ❤️ 1
    HSTS ,然后申请加入浏览器 preload 表
    会在本地直接跳转到 HTTPS

    https://blog.sorz.org/p/hsts-preload-list/
    invite
        16
    invite  
       2015-09-04 07:01:03 +08:00
    不管访问哪个 HTTP 页面,直接跳转到首页!然后在让他们重新访问!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2289 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:57 · PVG 11:57 · LAX 20:57 · JFK 23:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.