M2Crypto: переопределить проверку соединения после HostName - PullRequest
3 голосов
/ 23 февраля 2010

Я использую M2Crypto 0.20.2 и python 2.4.3. Я подключаюсь к серверу с полным доменным именем. Общее имя в сертификате сервера не использует полное доменное имя, поэтому я получаю эту ошибку:

M2Crypto.SSL.Checker.WrongHost: Peer certificate commonName does not match host

Как переопределить проверку соединения после имени хоста?

Спасибо!

1 Ответ

2 голосов
/ 23 февраля 2010

Установка SSL.Connection.clientPostConnectionCheck = None действительно обходит проверку WrongHost, но она также обходит множество других проверок, которые вы, вероятно, не хотите обходить (например, проверка, есть ли вообще какой-либо сертификат). Я бы порекомендовал использовать комбинацию try / Кроме того, чтобы поймать WrongHost, потому что на самом деле нет ничего другого, что проверяется или выполняется до конца функции подключения.

Другими словами, ничего не остается отмененным (насколько я вижу в источнике), просто перехватывая это исключение, и поэтому я говорю, что это лучший маршрут, чем использование

SSL.Connection.clientPostConnectionCheck = None

, который избавляет от множества других ценных проверок.

Что касается ошибки при вызове xmlrpc, я не могу сказать наверняка, не зная, что это за ошибка. Я предполагаю, что это исключение ProtocolError, и если это так, вы можете просто отредактировать m2xmlrpclib.py, чтобы не вызывать исключение с кодом ошибки, который указан в исключении ProtocolError, которое вы получаете.

...