Как извлечь x509 в Python ⇐ Python
-
Anonymous
Как извлечь x509 в Python
У меня есть следующий скрипт. Он подключается к TLS-серверу и извлекает некоторые данные X509, такие как даты действия и открытый ключ. У меня есть следующий скрипт:
импорт сокета, SSL импортировать OpenSSL имя хоста = 'www.google.com' порт=443 контекст = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) s = сокет.сокет(сокет.AF_INET, сокет.SOCK_STREAM) ssl_sock = context.wrap_socket(s, имя_хоста_сервера=имя_хоста) ssl_sock.connect((имя хоста, порт)) ssl_sock.close() print("SSL-соединение выполнено") сертификат = ssl.get_server_certificate((имя хоста, порт)) # OpenSSL x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, сертификат) пк = x509.get_pubkey() печать(x509.get_notAfter()) печать(x509.get_notBefore()) печать (ПК) Проблема в том, что даты действия и открытый ключ возвращаются в нечитаемом формате. Как решить эту проблему? то есть получить действительность в формате даты и открытый ключ в шестнадцатеричном формате?
Кроме того, как мне сохранить файл сертификата на локальном диске для справки?
РЕДАКТИРОВАТЬ: Вот результат, который я получаю:
b'20170223141600Z' б'20161201141600Z'
У меня есть следующий скрипт. Он подключается к TLS-серверу и извлекает некоторые данные X509, такие как даты действия и открытый ключ. У меня есть следующий скрипт:
импорт сокета, SSL импортировать OpenSSL имя хоста = 'www.google.com' порт=443 контекст = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) s = сокет.сокет(сокет.AF_INET, сокет.SOCK_STREAM) ssl_sock = context.wrap_socket(s, имя_хоста_сервера=имя_хоста) ssl_sock.connect((имя хоста, порт)) ssl_sock.close() print("SSL-соединение выполнено") сертификат = ssl.get_server_certificate((имя хоста, порт)) # OpenSSL x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, сертификат) пк = x509.get_pubkey() печать(x509.get_notAfter()) печать(x509.get_notBefore()) печать (ПК) Проблема в том, что даты действия и открытый ключ возвращаются в нечитаемом формате. Как решить эту проблему? то есть получить действительность в формате даты и открытый ключ в шестнадцатеричном формате?
Кроме того, как мне сохранить файл сертификата на локальном диске для справки?
РЕДАКТИРОВАТЬ: Вот результат, который я получаю:
b'20170223141600Z' б'20161201141600Z'
Мобильная версия