Отключить проверку сертификата errbot
Я с трудом пытаюсь подключить errbot к серверу dev HipChat из-за недействительного сертификата ssl.
журнал:
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: ssl_cert
21:16:01 ERROR sleekxmpp.xmlstream.xmlst Could not match certficate against hostname: chat.btf.hipchat.com
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: session_end
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: disconnected
21:16:01 INFO errbot.core Disconnect callback, deactivating all the plugins.
21:16:01 DEBUG sleekxmpp.thirdparty.stat ==== TRANSITION connected -> disconnected
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst SEND (IMMED): <stream:stream to='chat.btf.hipchat.com' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: socket_error
21:16:01 WARNING sleekxmpp.xmlstream.xmlst Failed to send b"<stream:stream to='chat.btf.hipchat.com' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>"
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: session_end
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: socket_error
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: disconnected
21:16:01 INFO errbot.core Disconnect callback, deactivating all the plugins.
21:16:01 DEBUG sleekxmpp.thirdparty.stat ==== TRANSITION connected -> disconnected
21:16:01 DEBUG sleekxmpp.xmlstream.xmlst Event triggered: socket_error
21:16:01 ERROR sleekxmpp.xmlstream.xmlst Socket Error #9: Bad file descriptor
Errbot продолжает проверять сертификат, несмотря на то, что в BOT_IDENTITY я указал "verify": False, а также XMPP_CA_CERT_FILE = Нет в конфигурации.
часть конфига:
BOT_IDENTITY = {
## HipChat mode (Comment the above if using this mode)
'username' : '1_2@chat.btf.hipchat.com',
'password' : '123qweASD',
## Group admins can create/view tokens on the settings page after logging
## in on HipChat's website
'token' : 'sometoken',
## If you're using HipChat server (self-hosted HipChat) then you should set
## the endpoint below. If you don't use HipChat server but use the hosted version
## of HipChat then you may leave this commented out.
'endpoint' : 'hipchat.test.intra',
'verify': False,
}
XMPP_CA_CERT_FILE = None
Любые идеи, как заставить это работать, действительно ценятся.
1 ответ
Источником этой ошибки является функция проверки, которая проверяет действительность сертификата с точки зрения имени хоста и даты действия.
Значение XMPP_CA_CERT_FILE
набор в конфигурации errbot в конечном итоге передается ca_certs
в классе XMLStream, где он используется для влияния на cert_policy
, Это устанавливает ssl.CERT_NONE
но даже в этом случае он все еще вызывает проверку.
Это означает, что в настоящее время вы можете иметь (возможно самозаверяющий) сертификат без действительного доверенного корня, но вам все равно придется убедиться, что имя хоста, к которому вы подключаетесь, совпадает с именем хоста (CN) сертификата. (Это то, что SleekXMPP, базовая библиотека XMPP, используемая errbot, навязывает нам, а не непосредственно что-то от самого errbot).