如何为所有域名创建通配符证书?
这是我的错误:
CACERTIFICATE.crt 在我的浏览器中被导入为受信任的。SERVERCERTICIATE.crt 和 SERVERPRIVATEKEY.key 用于扫描 SSL 流量中的病毒的代理服务器。
问题是我在 IE 中必须取消选中:“工具 - Internet 选项 - 高级 - 如果证书中的地址不匹配则发出警告*”
以便它不会对证书提出抱怨。(在图片 eicarcert.PNG 中,我取消了该设置,您可以看到该证书是受信任的)。
在 Firefox(最新版)中,我必须为访问的每个 SSL 站点单击“添加安全例外”。即使证书是可信的,也必须为访问的每个 SSL 站点“添加安全例外”,这非常令人恼火。Firefox 对其 SSL 处理进行了更新,不允许*
在域中覆盖 .。即使拥有这样的证书,*.*.*
浏览器也不会信任它。
有没有办法创建对全球所有域名都有效的证书?
答案1
不幸的是,关于通配符匹配如何工作,从来没有一个好的 RFC,因此不同的实现(主要是 SChannel 和 NSS)略有不同。不过,这里有一个草案标准可以明确这一点:
https://datatracker.ietf.org/doc/html/draft-saintandre-tls-server-id-check-09#section-4.4.3
以下是微软对此的看法:
support.microsoft.com/kb/258858
基本上,通配符可能出现在最左边的标签中,并且它匹配确切地一个标签。因此 *.example.com 匹配www.example.com,但不是 example.com (因为那意味着匹配零个标签)。
'*' 仅匹配 'com'、'org' 等。'*.*' 无效。
所以你无法做你想做的事情。SSL MITM 盒必须在客户端机器上安装根 CA,然后动态生成证书(使用缓存)用于它们想要拦截的域。
MITM 也是一个糟糕的想法,它会给世界其他地方带来巨大的成本,并不断破坏事物。不要指望 Chrome 能与他们合作。
答案2
你需要一个多域名证书不是通配符证书。