Ssl Python3 Twisted HTTPS代理:错误证书/Firefox-严格传输安全(HSTS)
我正试图整合一个“中间人”代理服务器,它在localhost:8080上提供服务,用twisted拦截数据Ssl Python3 Twisted HTTPS代理:错误证书/Firefox-严格传输安全(HSTS),ssl,proxy,twisted,Ssl,Proxy,Twisted,我正试图整合一个“中间人”代理服务器,它在localhost:8080上提供服务,用twisted拦截数据 但是我在浏览器中得到了这个响应 未连接:潜在的安全问题 Firefox检测到潜在的安全威胁,并没有继续攻击,因为该网站需要安全连接 有一个称为HTTP严格传输安全性(HSTS)的安全策略,这意味着Firefox只能安全地连接到它。您不能添加访问此网站的异常 我的日志告诉我 CONNECTION LOST [Failure instance: Traceback: <class '
但是我在浏览器中得到了这个响应 未连接:潜在的安全问题 Firefox检测到潜在的安全威胁,并没有继续攻击,因为该网站需要安全连接 有一个称为HTTP严格传输安全性(HSTS)的安全策略,这意味着Firefox只能安全地连接到它。您不能添加访问此网站的异常
我的日志告诉我
CONNECTION LOST [Failure instance: Traceback: <class 'OpenSSL.SSL.Error'>: [('SSL routines', 'ssl3_read_bytes', 'sslv3 alert bad certificate')]
我使用的ConnectProxy协议来自此回购协议:
有人能告诉我应该如何生成这些证书吗?我拥有的是自签名并导入firefox。我是否也应该将它们存储在/etc/ssl/private和/etc/ssl/cert中?TLS和HSTS的目的是阻止别人做你正在做的事情。Firefox正在努力只接受真正的www.google.com证书,而不是您可能提供的任何替代证书。
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()