我正在使用相互身份验证和Python2。要为服务器和客户端生成证书,请使用以下格式:
openssl -newkey rsa:2048 -keyout server.key -out server.crt req -x509 -nodes -days 365
我像这样包装套接字:
ssl.wrap_socket(s, ssl_version=ssl.PROTOCOL_TLSv1, cert_reqs=ssl.CERT_REQUIRED, keyfile=keyfile, certfile=certfile)
在客户端的套接字上运行connect时出现以下错误:
File "/usr/lib/python2.7/ssl.py", line 844, in connect
self._real_connect(addr, False)
File "/usr/lib/python2.7/ssl.py", line 835, in _real_connect
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 808, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
我在某处读到了证书和这个版本的python之间可能不兼容,但我不确定。当我回到主计算机上时,我可以提供python 2(我认为是python 2.7)和OpenSSL的确切版本。
任何帮助解决这个问题都表示赞赏。