我目前正在使用OpenSSL编写HTTPS代理,但我不能让Firefox或IE接受我的自签名证书作为CA.我已将证书添加到IE中的“受信任的根证书颁发机构”和Firefox中的“权限”。我正在使用https://ssltest11.bbtest.net/上找到的证书对Geotrust进行测试,但就我所见,其他网站也是如此。 IE给了我错误:
本网站提供的安全证书不是由受信任的证书颁发机构颁发的。 本网站提供的安全证书是针对不同网站的地址发布的。
火狐:
https://ssltest11.bbtest.net/ Peer的证书颁发者无法识别。 HTTP严格传输安全性:false HTTP公钥固定:false
证书链:----- BEGIN CERTIFICATE -----
我是否必须为代理连接的每个域生成证书?
为了澄清,我正在生成.pem证书和密钥,然后将证书转换为.cer,我在Firefox和IE中使用。 .pem证书和密钥由代理使用。
答案 0 :(得分:0)
如果要进行SSL拦截,则必须生成一个CA证书,您将其添加为可信任的浏览器/系统,然后动态生成由此可信CA证书签名的叶证书。这意味着对于您正在进行SSL拦截的每个站点(即中间人攻击),您需要创建一个与URL中显示的名称匹配的证书。例如,可以通过从原始证书中提取通用名称和主题备用名称并根据这些信息创建新证书来创建匹配证书,这些证书由您在CA中间的人员签名。