关于 CF 的疑惑, https 强制要不要打开 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zijian
V2EX    Cloudflare

关于 CF 的疑惑, https 强制要不要打开

  •  
  •   zijian 2021-04-24 18:27:55 +08:00 8050 次点击
    这是一个创建于 1698 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的 CF 端对端加密选择的是 full,源站开了 http 强制转 https,那么 cf 这边还需要开“始终使用 HTTPS”与“自动 HTTPS 重写”这两个功能吗?我试着关了,好像也不影响正常访问,但是疑问来了,我关了这两个功能,端对端的全流程加密不就失效了吗?用户发起的 http 请求不就直接发到 cf 的 cdn 服务器上了?
    18 条回复    2021-04-26 18:12:54 +08:00
    ruixue
        1
    ruixue  
       2021-04-24 18:33:22 +08:00
    “始终使用 HTTPS”和直接在源站上配置 http 到 https 的 301 跳转效果是一样的
    “自动 HTTPS 重写”是把网页中的 http 链接自动替换成 https 的
    如果全站的 https 配置没问题,建议都打开就行了
    zijian
        2
    zijian  
    OP
       2021-04-24 18:36:16 +08:00
    @ruixue 好快的回复!但是“始终使用 HTTPS”这个功能是作用于哪个环节呢?
    ruixue
        3
    ruixue  
       2021-04-24 18:39:57 +08:00
    @zijian 就是用户通过 http 访问你的网站时,cloudflare 不管你的源站是怎么配置的,直接返回跳转到 https 的 301 状态码
    zijian
        4
    zijian  
    OP
       2021-04-24 18:45:16 +08:00
    @ruixue ok,但是我的源站就有 https,那这样不就是造成了用户访问时间的延迟,毕竟中间经过了二次执行,而且我看 CloudFlare Help Center 有提到不建议源站做 https 强制,这可怎么好,我的源站必须要做,因为国内是直接访问,cf 这条线是给境外用户使用的
    ruixue
        5
    ruixue  
       2021-04-24 18:50:51 +08:00
    @zijian 打开“始终使用 HTTPS”后,用户通过 http 访问你的网站时,cloudflare 不会建立和源站的连接而是直接返回 301 到 https,然后用户再使用 https 访问你的网站时,根据你的回源配置,cloudflare 才会建立和源站的反向代理连接,如果是“灵活”那就是 http 回源,如果是“完全”那就是 https 回源
    不建议源站做 https 强制,是因为如果使用的是“灵活”配置,那么 cloudflare 只会发起和源站之间的 http 连接,然而你的源站做了 https 强制跳转,会导致无法成功建立连接,使用的“完全”配置则无需担心这个问题
    zijian
        6
    zijian  
    OP
       2021-04-24 20:02:49 +08:00
    @ruixue 如果我选择关闭“始终使用 HTTPS”这个功能,说明用户可以通过 http 申请访问我的网站,此时 cf 会带着 http 向源站发起请求,源站将 http 转成 https 进行回应,又转回 cf,cf 带着 https 反馈给用户,是这样么?

    但是这个流程和我当前选择的 full 模式好像是不一致的吧,full 模式是不是要求这一个来回都是 https 加密的?
    zijian
        7
    zijian  
    OP
       2021-04-24 20:03:57 +08:00
    我一直以为选择 full 模式要求“始终使用 HTTPS”这一项必须得开着呢
    zijian
        8
    zijian  
    OP
       2021-04-24 20:11:47 +08:00
    可不可以这样理解,full 模式只是对 用户到 cf,或者 cf 到源站之间的证书安全进行控制,而 https 又是另外一回事了,https 大于 cert 这个概念
    opengps
        9
    opengps  
       2021-04-24 22:44:10 +08:00
    就近从 CF 处吧 http 转为 https 省事很多,这样你源站只需要开启一个端口就够用。甚至说为了有些提速,你在 CF 以外用 https (含 http 跳转 https ),CF 到源站用 http
    chinvo
        10
    chinvo  
       2021-04-24 23:14:47 +08:00
    full 是用户到 cf cf 到源站 都 https

    hsts 和 http 的 301 是用户到 cf
    dzdh
        11
    dzdh  
       2021-04-24 23:39:52 +08:00
    cf 跳转和你的服务器自己跳转是两回事。

    我觉得用 CF 有一个『隐藏服务器 IP 』的目的在。

    其次,你怎么做到用 CF 的同时能让 HTTP 和 HTTPS 走两条线路的?
    ruixue
        12
    ruixue  
       2021-04-25 00:14:56 +08:00   2
    @zijian 并不是,full 模式就是 https 回源,即使用户使用 http 和 cf 建立连接,cf 也会通过 https 回源

    也就是说:

    flexible+关闭“始终使用 HTTPS”,那么用户可以和 cf 使用 http 或 https 连接,而 cf 和源站使用 http 连接

    flexible+打开“始终使用 HTTPS”,那么用户只和 cf 使用 https 连接,而 cf 和源站使用 http 连接

    full+关闭“始终使用 HTTPS”,那么用户可以和 cf 使用 http 或 https 连接,而 cf 和源站使用 https 连接

    full+打开“始终使用 HTTPS”,那么用户只和 cf 使用 https 连接,cf 和源站使用 https 连接

    简而言之,flexible 、full 是控制 cf 回源用的协议,“始终使用 HTTPS”是控制是否强制用户使用 https 访问 cf

    我之前可能有一点没有说清楚,“始终使用 HTTPS”和直接在源站上配置 http 到 https 的 301 跳转效果是一样的,后面半句话的背景是用户直接访问你的源站,获得了 301 跳转状态码。如果你希望访问 cf 的用户都能自动跳转 https,那么就需要把“始终使用 HTTPS”打开
    oott123
        13
    oott123  
       2021-04-25 01:23:44 +08:00 via Android   2
    楼上说得不对,不管你用如何设置,用户 http 访问就是 http 回源,除非 CF 或者你把用户跳到了 https 上

    flexible 和 full 只决定用户用 https 时,走 http 回源还是走 https 回源
    alexkkaa
        14
    alexkkaa  
       2021-04-25 08:15:50 +08:00 via Android
    必须啊 cf 现在已经全局 http3 了 前两年 chrome 就已经把非 https 的网站红标警告了,你是用的国产浏览器还是老版本 chrome ?
    zijian
        15
    zijian  
    OP
       2021-04-25 09:12:43 +08:00 via iPhone
    @ruixue 好的,我明白您的意思了,感谢
    ruixue
        16
    ruixue  
       2021-04-25 09:45:05 +08:00   1
    @oott123 试了下确实如此,是我之前说错了,谢谢指正

    @zijian 抱歉,前面我说的不对,full 模式并不是强制 https 回源,而是在用户使用 https 时,保证回源也使用 https 。也就是说如果关闭“始终使用 HTTPS”,那么设置为 full 时,用户和 cf 使用 http 连接,cf 和源站也使用 http 连接,用户和 cf 使用 https 连接,cf 和源站也使用 https 连接
    zmsky
        17
    zmsky  
       2021-04-26 13:51:35 +08:00
    想问一下如何做到国内直接访问,不同的域名么?
    humxman
        18
    humxman  
       2021-04-26 18:12:54 +08:00
    如果想用户只输入域名在不经过跳转的情况下直接访问 HTTPS,你需要加入 HSTS 头部信息。并且在下面的网站添加自己的域名到预加载例表。
    https://hstspreload.org/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2883 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:15 PVG 22:15 LAX 06:15 JFK 09:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86