Просмотр информации по сертификатам
На вывод необходимо получить всю информацию из ssl сертификата (subject, issuer, extensions и т д).
С сертификатами форматов pem, der разобрался, но не могу найти решение для .jks, .cacert.
Нужно сделать на питоне. Что имею сейчас:
def get_info(path_to_file, filename, file_type):
with open(path_to_file + "/" + filename, 'rb') as cert_file:
if file_type == '.der':
cert = x509.load_der_x509_certificate(cert_file.read(), default_backend())
elif file_type == '.pem' or file_type == '.cer' or file_type == '.crt':
cert = x509.load_pem_x509_certificate(cert_file.read(), default_backend())
cryptography.hazmat.primitives.serialization.pkcs12.load_pkcs12(cert_file.read(), None)
cert = cert.cert.certificate
print("Subject: " + str(cert.subject))
for extension in cert.extensions:
print(extension)
То есть нужен какой то аналог x509.load_der_x509_certificate, но для других форматов.
Задача в том, чтобы программно реализовать команды типа
openssl x509 -in certificate.crt -text -noout
Ответы (1 шт):
Можно воспользоваться subprocess и выполнить команду на прямую через openssl
import subprocess
result = subprocess.run(['openssl', 'x509', '-in', 'certificate.crt', '-text', '-noout'])
Данное использование выведет результат по исполнению команды. Чтобы поместить в переменную результат, необходимо вызвать check_output метод:
import subprocess
result = subprocess.check_output(['openssl', 'x509', '-in', 'certificate.crt', '-text', '-noout'])
Буквально, данный метод позволяет использовать любой функционал внешней утилиты. В данном примере openssl
Как воспользоваться данной возможностью на Windows
- Установите OpenSSl для Windows
- Установите переменную окружения для OpenSSl
- Воспользуйтесь командой для Python, указанной выше
Если, же вы не знаете, как работать с переменными окружения в Windows, то можете указать путь к запуску на прямую, пример
import subprocess
result = subprocess.check_output(['C:\\Program Files\\OpenSSL-Win64\\bin\\openssl', 'x509', '-in', 'client.crt', '-text', '-noout'])
Опробовано на Windows 10 Pro, 64 bit