我正在开发Python3应用程序的客户端和服务器端。他们必须使用自签名证书通过TLS进行通信。
应该始终建立连接,即使两者都没有见过另一个,因此在其信任存储中也没有其他的证书。验证应在与自定义方法握手后进行。
但是,Python的ssl library尝试在握手期间验证证书,如果传入的证书未知且没有有效的证书链,则会失败。将verify_mode
设置为CERT_NONE
也不是一种选择,因为我需要双方的证书才能使用自定义验证方法。
所以我的问题是:如何从对方那里获得证书,但在握手期间关闭自动验证?或者我可以传递一个被调用的自定义verifyer方法吗?
谢谢!
答案 0 :(得分:0)
您可以使用ssl.get_server_certificate((host,port))
。它将以PEM格式返回证书。