Python3扭曲的HTTPS代理:错误的证书/ Firefox-严格的传输安全性HSTS 未连接:潜在的安全问题

问题描述

我正在尝试将一个“中间人”代理服务器放在一起,该代理服务器在localhost:8080上提供服务,以拦截扭曲的数据。


虽然我在浏览器中得到了这个响应...

未连接:潜在的安全问题

Firefox检测到潜在的安全威胁,并且由于该网站需要安全的连接而没有继续www.google.com

www.google.com一个称为HTTP Strict Transport Security(HSTS)的安全策略,这意味着Firefox只能安全地与其连接。您无法添加例外来访问此网站。


我的日志告诉我...

CONNECTION LOST [Failure instance: Traceback: <class 'OpenSSL.SSL.Error'>: [('SSL routines','ssl3_read_bytes','sslv3 alert bad certificate')]


这是我的代码

def main():
    from connectproxy.connectproxy import ConnectProxy
    import twisted.web.http
    import twisted.internet
    from twisted.internet import ssl
    from OpenSSL import crypto
    from twisted.python import log
    import sys

    # Start logging
    log.startLogging(sys.stdout)

    factory = twisted.web.http.HTTPFactory()
    factory.protocol = ConnectProxy

    with open('keys/cert.pem','rb') as fp:
        ssl_cert = fp.read()
    with open('keys/key.pem','rb') as fp:
        ssl_key = fp.read()

    certificate = ssl.PrivateCertificate.load(ssl_cert,ssl.KeyPair.load(ssl_key,crypto.FILETYPE_PEM),crypto.FILETYPE_PEM)
    
    twisted.internet.reactor.listenSSL(8080,factory,certificate.options())
    twisted.internet.reactor.run()


if __name__ == '__main__':
    main()

我使用的是ConnectProxy协议,来自以下仓库:https://github.com/fmoo/twisted-connect-proxy

有人可以告诉我如何生成这些证书吗?我拥有的是自签名的,并导入了Firefox。我是否还应该将它们存储在/ etc / ssl / private和/ etc / ssl / cert中?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)