Возможно ли получить сертификат только с помощью python3 с сервера, который требует аутентификации клиента без аутентификации?
В моей среде есть сервер, требующий проверки подлинности ssl-сертификата клиента. Если у вас его нет, при соединении с openssl вы сможете получить сертификат, но получите сообщение об ошибке: Публикация с подробностями . Ошибка возникает в конце рукопожатия.
Если я попробую с python использовать модуль ssl:
hostname = 'serverwithclientauth'
# PROTOCOL_TLS_CLIENT requires valid cert chain and hostname
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.load_verify_locations('path/to/cabundle.pem')
with socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) as sock:
with context.wrap_socket(sock, server_hostname=hostname) as ssock:
print(ssock.version())
(который в основном копирует / вставляет из: Python.org )), ошибка wrap_socket. Мне интересно, можно ли разбить последовательность ssl на более мелкие куски, чтобы я мог завершить работу после того, как сервер отправит сертификат клиенту.
Я пытался просто пойти на:
ssl.get_server_certificate((host,port))
но даже этот бит не работает для этого хоста (другие без требования аутентификации клиента работают отлично!).