Проблемы при использовании клиента для получения сертификата сервера в Python 3.6 - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь получить сертификат сервера с помощью клиента. Ниже приведена соответствующая часть моего кода, написанного на Python 3.6:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((mailhost, int(port)))
ctx = ssl.create_default_context()
ctx.check_hostname = True
ctx.verify_mode = ssl.CERT_REQUIRED
s = ctx.wrap_socket(s, server_hostname=mailhost)
cert_bin = s.getpeercert(True)

После запуска этого кода я получаю следующую ошибку при вызове метода "wrap_socket":

[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:847)

Клиент имеет OpenSSL 1.1.0g 2 ноября 2017 года и работает под управлением Ubuntu 18.04, а сервер имеет OpenSSL 1.0.2k-fips 26 января 2017 года и работает под управлением CentOS 7.6.

Связана ли эта проблема с различными версиями OpenSSL?

...