我正在尝试在客户端和服务器套接字之间创建 ssl 连接。 这是我的代码: 客户:
temp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client = ssl.wrap_socket(temp_socket,ssl_version=ssl.PROTOCOL_TLSv1_2, c
=ciphers="AES256-GCM-SHA384")
#print client.ciphers
client.connect((server_address, int(port)))
服务器:
temp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket = ssl.wrap_socket(temp_socket, ssl_version=ssl.PROTOCOL_TLSv1,
ciphers="ADH-AES256-SHA256")
server_socket.bind(("0.0.0.0", port))
server_socket.listen(1)
(client_socket, client_address) = server_socket.accept()
我得到错误: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 客户端 sslv3 警报握手失败 (_ssl.c:661) 和 [SSL: NO_SHARED_CIPHER] 没有共享密码 (_ssl.c:590) 我认为问题可能是我没有将 key 文件提供给套接字,但我看到 RSA key 不存在该选项。 知道错误可能是什么吗?
最佳答案
您没有获得服务器的证书和匹配的 key 文件,但您选择的密码使用 RSA 身份验证,因此需要证书和 key 。请参阅 the documentation 中的参数 certfile
和 keyfile
.
关于python - 带有python的ssl客户端服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44625720/