Python中的SSL:为什么不将证书发送到服务器?
|
我正在编写一些应从SSL安全的网页上获取信息的软件。下面是我用于连接服务器的代码段。
s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket (
s,
ca_certs = \'/home/stilz/Desktop/Certyfikaty/GLOWNE_CA.cer\',
cert_reqs = ssl.CERT_REQUIRED,
ssl_version = ssl.PROTOCOL_SSLv3,
)
ssl_sock.connect ((HOST, PORT))
但是,这不起作用。它会引发异常,并显示消息“握手警报失败”。我捕获了一些来自脚本的TCP数据包以及来自Internet Explorer的相应数据包,并发现我的脚本根本不发送证书(服务器返回诸如““致命:未提供证书”之类的信息)),而IE发送正常。据我所知,文件ca.cer是x509证书(以\“ ----- BEGIN CERTIFICATE ----- \”开头)。
请帮助我,并告诉我我做错了什么。如果我提供的信息很少,请告诉我。
问候
没有找到相关结果
已邀请:
2 个回复
拟蓬
茬贺努充尽
提供证书的路径(
)及其匹配的私钥(
)。
参数仅用于客户端根据已知的CA证书来验证服务器的证书,与发送客户端证书无关。 您可能需要从IE导出客户端证书和私钥(然后将它们转换为PEM格式)。