遇到一点证书问题,望运维大佬给看看 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
freaks
0.61D
V2EX    DevOps

遇到一点证书问题,望运维大佬给看看

  •  
  •   freaks 290 天前 5543 次点击
    这是一个创建于 290 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是我使用 Let's Encrypt 给一个域名签发了证书,比如 example.com 这个主域名,签发时我输入的域名为:*.example.com , 但是我使用 edge 浏览器访问 example.com 死活报不安全,也没有锁图标显示,但是看证书信息签发都正常的,日期也是正常的,我换个浏览器访问主域名,可以正常显示,不提示不安全,访问相应的二级域名:a.example.com 也没有问题,我就奇了怪了,edge 为啥不行,cookie 和缓存都清了,隐身模式也不行,是非要在签发时输入主域名和泛域名才行吗?望知道的大佬指点下,再次谢过。

    第 1 条附言    290 天前
    感谢各位 L 回复,我看了下确实是只有 Firefox 可以,edge 和 chrome 都不行,之前都是买的泛域名证书,估计默认就是主域名和泛域名都打到一个证书里了,下次申请免费的会注意的。
    46 条回复    2024-12-26 19:36:41 +08:00
    just1
        1
    just1  
       290 天前 via Android
    wangmn
        2
    wangmn  
       290 天前
    example.com
    *.example.com

    直接签两个不就好了
    Muyiafan
        3
    Muyiafan  
       290 天前
    要签两个
    -d a.com -d "*.a.com"
    AoEiuV020JP
        4
    AoEiuV020JP  
       290 天前
    > 我换个浏览器访问主域名,可以正常显示,
    这是哪个浏览器?确定停用缓存刷新一下还是可以访问吗?可以访问才有问题,泛域名一直都不包含主域名,
    qoo2019
        5
    qoo2019  
       290 天前
    @AoEiuV020JP 应该是浏览器自动补全了 www.
    楼主又一知半解
    lcy630409
        6
    lcy630409  
       290 天前
    example.com
    *.example.com
    这是两个域名,所有权不一样
    esee
        7
    esee  
       290 天前 via Android   2
    泛域名不包含主域名,要签两个的
    freaks
        8
    freaks  
    OP
       290 天前
    @AoEiuV020JP 火狐和 chrome
    freaks
        9
    freaks  
    OP
       290 天前
    @qoo2019 复制出来,没有 www 的
    freaks
        10
    freaks  
    OP
       290 天前
    @lcy630409 除了 egde ,其他浏览器可以
    freaks
        11
    freaks  
    OP
       290 天前
    搜了几篇文档,都说泛域名包括主域名
    iloveayu
        12
    iloveayu  
       290 天前
    @freaks #11 说归说,每个浏览器的具体实现能一样嘛
    abolast
        13
    abolast  
       290 天前
    *.example.com 匹配 a.example.com ,但是不匹配 b.a.example.comexample.com
    pridealloverme
        14
    pridealloverme  
       290 天前
    直接对比 edge 和其他 浏览器获取到的证书哈希,看是不是同一张证书。先排除是不是证书问题
    lcy630409
        15
    lcy630409  
       290 天前
    @freaks
    现场测试,查查自己电脑环境吧
    https://imgur.com/WXbygxf
    https://imgur.com/Ks0T2hM
    lcy630409
        16
    lcy630409  
       290 天前
    lcy630409
        17
    lcy630409  
       290 天前
    lcy630409
        18
    lcy630409  
       290 天前   1
    测试的 edge 也是一样的
    263
        19
    263  
       290 天前
    先要搞清楚证书的类型,普通通配域名你需要签两个 example.com *.example.com

    https://www.wosign.com/column/ssl_20211231.htm
    xinzhanghello
        20
    xinzhanghello  
       290 天前
    虽然不知道原理,但是 C F 上生成 server origin 证书时,*.example.com 和 example.com 是分开显示的,所以我推测这个东西需要两个都要单独签
    freaks
        21
    freaks  
    OP
       290 天前
    @lcy630409 #15
    @abolast
    @pridealloverme
    @263
    @xinzhanghello 谢谢各位了,我还是都签吧,就是不知道为啥火狐可以。
    COW
        22
    COW  
       290 天前
    这么说 edge 的实现还挺安全的
    qoo2019
        23
    qoo2019  
       290 天前
    @freaks 真要深入,你不应该复制,而应该抓包,看浏览器发送出去的是啥
    AlexBob
        24
    AlexBob  
       290 天前
    你认真看下 Let's Encrypt 文档,我记得首页就有域名匹配规则
    yuzo555
        25
    yuzo555  
       290 天
    通配符证书所采用的“通配符”与文件匹配的采用的通配符规则类似:

    * 这个字符就是一个通配符,他在域名匹配模式中表示 0 到任意长度的合法字符
    . 在正则表达式里面表示任意字符,但在域名匹配所采用的普通通配符模式中 . 就是一个普通字符,就表示半角的“点”本身。

    *.example.com 其中有个“.”,就注定了它无法匹配到 example.com 这个主域名。

    不过,一般稍微正规一的证书机构在签发通配符证书时,即使客户不懂,没有要求,他们也都会在 SAN 中添加上主域名本身,也就是说一般正规机构签发的证书都会支持 example.com 和 *.example.com 两个域名。

    但由 ACME 客户端签发的 LE/ZeroSSL/GTS 免费证书,默认情况下不会为你贴心地考虑这个问题,你都选择免费证书了,要求你点动手能力不过分吧,你得主动在申请中同时添加两个域名才行。
    zengxs
        26
    zengxs  
       290 天前
    原理没那么复杂,就是直接看域名是否匹配

    *.example.com 里面 * 表示任意字符(不包括 .)
    再把 example.com 去匹配一下 *.example.com ,可以发现很明显就是不匹配的
    EchoYang7
        27
    EchoYang7  
       290 天前
    @zengxs
    example.com = .example.com
    www.v2ex.com = .www.v2ex.com
    v2ex.com = .v2ex.com
    snw
        28
    snw  
       290 天前 via Android
    @EchoYang7
    域名的隐藏点是在末尾,不是在最前。所以
    example.com = example.com. ≠ .example.com
    EchoYang7
        29
    EchoYang7  
       290 天前
    @snw 对 我记错了
    salmon5
        30
    salmon5  
       290 天前
    Common Name 和 Subject Alternative Name ,2 个东西,免费的证书做的不是那么智能。
    以前 digicert 也有这个傻不拉几的 Bug ,后来修掉了。
    realpg
        31
    realpg  
    PRO
       290 天前
    @freaks #21
    所以 其实是火狐不安全
    viking602
        32
    viking602  
       290 天前
    *.example.com != example.com 这是两个域名
    lfmwO
        33
    lfmwO  
       290 天前
    你签名的最后的证书, 要用的那个证书
    fullchain.cer
    lfmwO
        34
    lfmwO  
       290 天前
    有可能是证书链没有补全, 不存在其他问题, 你可以再试试看, 用 fullchain.cer
    这个是补全证书链的
    freaks
        35
    freaks  
    OP
       290 天前
    @lfmwO 用的别人的开源软件,没有这个文件
    leion8310
        36
    leion8310  
       290 天前
    example.com 对应的域名规则是 @.example.com ,跟 *.example.com 不是一回事
    Zzdex
        37
    Zzdex  
       290 天前
    首先只申请 `*.example.com ` 访问 `example.com ` 肯定是不可以的

    然后浏览器能成功的看看是不是补全了 www
    aloxaf
        38
    aloxaf  
       290 天前
    我不相信 FF 能犯这么低级的错误,这不是实现问题,*.example.com 是明确不应该匹配 example.com

    建议 LZ 检查一下 FF 访问 example.com 时显示的证书是啥
    freaks
        39
    freaks  
    OP
       290 天前
    @Zzdex
    @aloxaf 破案了,通用证书名称:*.example.com ,火狐自动加了 www
    Hookery
        40
    Hookery  
       290 天前
    mopland
        41
    mopland  
       290 天前
    @Muyiafan Let's Encrypt 可以同时签两个域名到一个证书里吗?
    franklinyu
        42
    franklinyu  
       289 天前 via iPhone
    @mopland #41 当然可以,我至少两年前就开始这么用了。「主域名和泛域名共用证书」是基操了
    lijiangang886
        43
    lijiangang886  
       289 天前
    offtopic:楼主头像不错
    vZexc0m
        44
    vZexc0m  
       288 天前
    @lfmwO #34 acme 有这个文件
    mopland
        45
    mopland  
       287 天前
    @franklinyu 完全不同的两个域名,能不能打到一个证书里?
    franklinyu
        46
    franklinyu  
       287 天前 via iPhone
    @mopland 我不知道 Let’s Encrypt 是否支持;我自己没试过。从原理上说,至少 TLS 协议是支持的; Cloudflare 就经常把一堆无关域名打包到一张证书里。有理由相信 LE 应当支持(如果两个域名可以用同一套机制验证的话)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2830 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 13:33 PVG 21:33 LAX 06:33 JFK 09:33
    Do have faith in what you're doing.
    ubao 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