我需要创建客户端/服务器应用程序以将文件从客户端发送到服务器.我使用简单的ssl套接字并使用证书进行身份验证.
ms = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(ms,
keyfile=".../newCA/my_client.key",
certfile=".../newCA/my_client.crt",
server_side=0,
cert_reqs=ssl.CERT_REQUIRED,
ca_certs=".../newCA/CA/my-ca.crt"
)
ssl_sock.connect((HOST, MPORT))
Run Code Online (Sandbox Code Playgroud)
和服务器端:
msock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.ssl_sock = ssl.wrap_socket(msock,
keyfile=".../newCA/my_server.key",
certfile=".../newCA/my_server.crt",
server_side=1,
cert_reqs=ssl.CERT_REQUIRED,
ca_certs=".../newCA/CA/my-ca.crt"
)
self.ssl_sock.bind(('', self.PORT))
self.ssl_sock.listen(self.QUEUE_MAX)
Run Code Online (Sandbox Code Playgroud)
问题如下:当客户端尝试连接到服务器时,它需要输入两者的私钥密码:对于服务器端和客户端.
问题是我的Application:Client应该使用已经签名的证书,而Server也应该使用已签名的证书.我无法改变它.Serever和客户都是长期应用程序,所以我们只运行它,我们不需要寻找它们.但是,据我所知,Python没有提供自动输入私钥密码的标准方法.可能是其他建议?