Вы можете отключить все проверки сертификатов в M2Crypto следующим образом:
from M2Crypto import SSL, httpslib
context = SSL.Context("sslv3")
# Disable certificate checking
context.set_verify(0, depth = 0)
connection = httpslib.HTTPSConnection("somehostname", 443, ssl_context=context)
# Hack (!!!) for disabling host name check <CN> == <expected host name>.
# Will affect any future SSL connections made by M2Crypto!
SSL.Connection.postConnectionCheck = None
connection.connect() # <-- this would normally raise SSL verification errors
connection.request("GET", "/")
...
Надеюсь, вы знаете, что это по существу отключит защиту для любого соединения SSL, созданного с помощью M2Crypto. Так что это вообще не рекомендуется, за исключением случаев, когда вы общаетесь только с одним сервером и считаете, что риск «человек посередине» более приемлем, чем использование незашифрованного HTTP.
Пока что для решения M2Crypto, но, поскольку ваш вопрос (в отличие от вашего заголовка) требует SOAPpy (который я еще не использовал), решение может быть другим, потому что SOAPpy config кажется использовать модуль socket
вместо M2Crypto.SSL
(см. строку 132). Я не знаю, как запретить модулю socket.ssl
проверять имена хостов.