【问题标题】:How to generate HTTPS proxy certificate?如何生成 HTTPS 代理证书?
【发布时间】:2016-10-21 18:07:06
【问题描述】:

我目前正在使用 OpenSSL 编写 HTTPS 代理,但我无法让 Firefox 或 IE 接受我的自签名证书作为 CA。我已将证书添加到 IE 中的“受信任的根证书颁发机构”和 Firefox 中的“授权机构”。我正在使用Geotrust 找到的证书在https://ssltest11.bbtest.net/ 上进行测试,但据我所见,这同样适用于其他网站。 IE 给我错误:

本网站提供的安全证书并非由受信任的证书颁发机构颁发。 本网站提供的安全证书是针对不同网站的地址颁发的。

火狐:

https://ssltest11.bbtest.net/ Peer 的证书颁发者无法识别。 HTTP 严格传输安全性:false HTTP 公钥固定:false

证书链:-----BEGIN CERTIFICATE-----

是否必须为代理连接到的每个域生成证书?

为了澄清,我正在生成 .pem 证书和密钥,然后将证书转换为我在 Firefox 和 IE 中使用的 .cer。 .pem 证书和密钥由代理使用。

【问题讨论】:

标签: firefox ssl https proxy openssl


【解决方案1】:

如果您想进行 SSL 拦截,您必须生成一个 CA 证书,您将其添加为浏览器/系统的受信任证书,然后动态生成由该受信任 CA 证书签名的叶证书。这意味着对于您正在执行 SSL 拦截的每个站点(即中间人攻击),您需要创建一个与 URL 中显示的名称匹配的证书。例如,可以通过从原始证书中提取公用名和主题备用名称并根据这些信息创建新证书来创建匹配证书,并由中间 CA 中的人签名。

【讨论】:

  • 我不太明白,新证书所需的最少信息是什么?
  • @Æðelstan:最少的信息将是 URL 中的主题匹配域(通用名称或主题替代名称,首选最后一个),并且证书由拦截 CA 签名。
  • 我明白了,主题替代名称是什么?
  • 代理证书是真实存在的,它们不同于中间件中间件玩弄的终端实体证书。另请参阅RFC 3820, Proxy Certificate Profile
  • @jww:短语“代理证书”可以有多种含义,而 RFC 3820 仅描述了其中一种含义(即证书使用 as 代理)。但是该短语也常用于证书 created by 代理(如在此问题中)或证书 of 代理(用于通过 TLS 访问的代理)。令人困惑,但实际上在人类语言中很常见的是,仅通过查看上下文才能显示短语的真正含义。
猜你喜欢
  • 2012-02-24
  • 2011-04-18
  • 1970-01-01
  • 2015-07-08
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
相关资源
最近更新 更多