为本地HTTP/2代理生成证书



我试图让Firefox每晚使用一个安全的HTTP/2代理,但它拒绝接受自签名证书。

代理由nghttp 2作为HTTP/2前端和一个简单的Twisted代理作为后端组成。Twisted代码来自https://wiki.python.org/moin/Twisted-Examples并且作为HTTP/1.1代理单独工作。nghttp 2使用调用

nghttpx -s -flocalhost,8443 -b127.0.0.1,8080 server.pem server.pem -L INFO

Firefox将其用作中指定的代理https://nghttp2.org/documentation/nghttpx-howto.html#http-2-代理模式。

我使用为localhost创建了server.pem

openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

当我尝试加载一个通用网站时http://www.something.com通过代理,Firefox会显示"This Connection is Untrusted"警告。但是,如果我告诉它添加并存储异常,它只会再次显示警告。据我所知,它从未通过nghttp 2前端到达Twisted代理。

我应该为安全代理证书做一些不同的事情吗?我在网上找不到除了nghttp 2之外的其他内容,"请注意,Firefox nightly和Chromium都需要有效的安全代理证书。">

Patrick McManus不久前在Firefox bugzilla中几乎准确地回答了这个问题,原因是Firefox中仍然缺乏UI:

您可以为代理情况执行TOFU异常,但必须执行有点不同。

  1. 关闭firefox中的代理使用。

  2. 看跌https://PROXYNAME:PROXYPORT/在位置栏中(使用与您在PAC中配置的名称和端口号相同的端口号-您不能使用ip地址或默认端口。。你不能使用ip地址,因为PKI无法验证它们,并且每个端口都存储异常。

  3. 覆盖cert警告并perm。存储异常。你得到的回应将毫无意义,因为你现在正在解决代理端口,就好像它是一个端点
  4. 重新打开代理并使用它

最新更新