Форум сайта python.su
Добрый день. Имеется jabber-сервер и питоновский скрипт, который благополучно работал много лет на этом сервере. После обновления сервера скрипт перестал соединяться. Причина: овнер запретил небезопасные версии ssl/tls. В данный момент скрипт выдает ошибку Exception: unknown protocol (_ssl.c:661).
Сменить сервер, к моему огромному сожалению, не предоставляется возможным. К данному аккаунту и скрипту привязано огромное количество людей.
Порезанный код скрипта можно посмотреть здесь: CODE
Крутится все на винде. Питон 2.7
Искомый сервер - dlab.im
Ошибка возникает на строке:
ssl_sock = ssl.wrap_socket(sock)
Если я правильно понимаю - необходимо либо обновлять какие-то либы (openssl например), либо прописывать игнорирование ошибок, либо работать с tls иным способом.
Прошу подсказать что можно сделать для реанимации работы. Спасибо.
Отредактировано ch1t3r (Сен. 4, 2017 19:59:07)
Офлайн
ca_certs = 'cacert.pem' # http://curl.haxx.se/ca/cacert.pem kwargs = {} if os.path.exists(ca_certs): kwargs.update(cert_reqs=ssl.CERT_REQUIRED, ssl_version=ssl.PROTOCOL_TLSv1, ca_certs=ca_certs) ssl_sock = ssl.wrap_socket(sock, **kwargs)
Офлайн
Извиняюсь за долгий ответ. был на отдыхе.
Внес правки в код. Получил следующую ошибку:
Exception: wrong version number (_ssl.c:661)
На сервере установлены следующие опции TLS:
‘TLSOPTS’:
- “no_sslv3”
- “no_tlsv1”
Я пробовал прописать:
ssl_version=ssl.PROTOCOL_TLSv2 - Exception: ‘module’ object has no attribute ‘PROTOCOL_TLSv2’
ssl_version=ssl.PROTOCOL_TLSv1_2 - Exception: wrong version number (_ssl.c:661)
Отредактировано ch1t3r (Июль 16, 2017 15:48:28)
Офлайн