首页 文章

Mac OS X - 接受自签名多域SSL证书

提问于
浏览
2

我使用Keychain Access导入了我的my.foo.bar.com和yours.foo.bar.com,但Chrome仍然不接受它,提示我在每次浏览会话开始时进行验证 per domain .

证书是使用x509v3主题备用名称扩展名生成的,以验证多个域 . 如果我在导入证书之前导航到该站点,我会收到与导入后不同的警告消息 . 下面附有两个错误的图像(顶部是导入前的错误)

enter image description here

有没有办法接受自签名的多域证书?我只在Chrome中收到警告,顺便说一下 . FF和Safari工作得很好(除了那些浏览器很糟糕;))

更新:我尝试使用openssl cli和xca GUI生成证书

1 回答

  • 5

    问题是你试图使用太宽的通配符( **.com ) .

    规范(RFC 6125RFC 2818 Section 3.1)谈论“最左侧”标签,这意味着应该有多个标签:

    1.客户端不应尝试匹配呈现的标识符
    其中通配符包含除 . 之外的标签
    最左边的标签(例如,不匹配bar . * . example.net) .

    2.如果通配符是最左边的唯一字符
    在提供的标识符中标签,客户端不应该比较
    除了最左边的参考标签之外的任何东西
    标识符(例如,* .example.com将匹配foo.example.com但是
    不是bar.foo.example.com或example.com) .

    我'm not sure whether there'是一个规范,说明应该有多少个最小标签,但Chromium code表示必须至少有2个点:

    我们需要至少3种成分(即2个点)作为对抗过于宽泛的野生梳理的基本保护 .

    这确实是为了防止像 *.com 这样过于宽泛的案件 . 这可能看起来不方便,但CA偶尔会犯错误,并且有一个措施来防止发布的潜在流氓证书工作并不一定是坏事 . 如果我没记错的话,一些实现比这更进一步,并且列表域对于二级域也太宽泛(例如 .co.uk ) .

    关于你的第二个例子:“CN:bar.com,SANs:DNS:my.foo.bar.com,DNS:yours.foo.bar.com” . 此证书应对 my.foo.bar.comyours.foo.bar.com 有效,但不对 bar.com 有效 . 当没有SAN时,CN只是一个后备解决方案 . 如果有任何SAN,则应忽略CN(尽管某些实现将更容忍) .

相关问题