M2Crypto:重写主机名的连接后检查

3 投票
2 回答
2468 浏览
提问于 2025-04-15 19:38

我正在使用 M2Crypto 0.20.2 和 Python 2.4.3。我是通过完整的域名连接到服务器的。但是,服务器证书中的常用名称并没有使用这个完整的域名,所以我遇到了这个错误:

M2Crypto.SSL.Checker.WrongHost: 对端证书的常用名称与主机不匹配

我该如何绕过连接后对主机名的检查呢?

谢谢!

2 个回答

0

从那时起,属性名称已经改成了:

M2Crypto.SSL.Connection.postConnectionCheck = None
3

SSL.Connection.clientPostConnectionCheck = None 这个设置了之后,可以跳过错误主机的检查,但这样也会跳过很多其他的检查,而这些检查你可能并不想跳过(比如检查是否有任何证书)。我建议使用 try/except 组合来捕捉错误主机的情况,因为在连接函数结束之前,实际上没有其他的检查或操作。

换句话说,单单捕捉这个异常并不会遗漏任何事情(根据我看到的源代码),所以我认为这比使用

SSL.Connection.clientPostConnectionCheck = None

要好,因为后者会省略掉很多其他有用的检查。

至于在进行 xmlrpc 调用时出现的错误,我不能确定具体是什么错误,因为我不知道错误的具体内容。我猜可能是 ProtocolError 异常,如果是这样的话,你可以编辑 m2xmlrpclib.py 文件,让它在遇到你得到的 ProtocolError 异常中的错误代码时不抛出异常。

撰写回答