Я хочу прочитать поле использования ключа в сертификате. Доступен ли API в openssl?
как прочитать использование ключа сертификата X509 V3?
Ответы (3)
Вы можете попробовать использовать следующую команду в openssl.
openssl x509 -in <certificate to check> -purpose -noout -text
Это распечатает список целей сертификата и сам сертификат.
7 лет спустя...
Более новые версии openssl
позволяют запрашивать расширения сертификатов, используя флаг -ext
.
Использование ключа печати:
$> openssl x509 -noout -ext keyUsage < test.crt
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
Распечатать использование расширенного ключа:
$> openssl x509 -noout -ext extendedKeyUsage < test.crt
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
Обратите внимание: если вы хотите распечатать несколько расширений одновременно, вам нужно разделить их запятой, а не использовать флаг -ext
несколько раз:
$> openssl x509 -noout \
-ext keyUsage,extendedKeyUsage < test.crt
Предыдущие решения вам нужно найти внутри файла результатов/вывести строку «Использование ключа». Я получил следующее решение, которое содержит именно строку внутри сертификата использования ключа X509.
openssl s_client -showcerts -connect SERVER_HERE:443 </dev/null 2>/dev/null|openssl x509 -text |grep v "$(grep -E -A1 "Key Usage")"
Приведенная выше команда получает сертификат, анализирует текст и находит строку «Использование ключа» и представляет следующую строку в результате, которая представляет значение для этого конкретного поля на X509.
//Ваше здоровье