Как я могу использовать инструмент openssl x509, чтобы увидеть, кодируются ли мои строки T61 или UTF8 в сертификате? Есть ли способ лучше?

1 ответ1

1

openssl x509: Если вы имеете в виду поля «Тема» и / или «Эмитент», самый простой и читаемый способ (ИМО)

openss x509 -in certpemfile -noout -text -nameopt multiline,show_type 

или если вы хотите, чтобы только поля имени изменили -text на -subject и / или -issuer . Существуют и другие форматы, и если вы хотите, чтобы нетривиально закодированные данные отображались для удобства, вам могут потребоваться дополнительные опции; см. справочную страницу в вашей системе или по адресу https://www.openssl.org/docs/apps/x509.html#NAME-OPTIONS . Если вы вводите "DER" (двоичный файл), а не более распространенный "PEM" (текстовый), добавьте -inform der .

Если вы имеете в виду расширения, которые могут содержать (отличительные) поля имени - я считаю SAN/IAN, NameConstraints, CRLDP, AIA/SIA, хотя я не понимаю, как DN будет полезен в последних трех, и, безусловно, их больше - - это не поддерживается, что я знаю. Но посмотрим дальше.

другое: openssl asn1parse точные типы, длины и, в основном, значения любой структуры BER/DER ASN.1, включая сертификат. Для расширений формы X.509 (обернутых в OCTET STRING) вы можете использовать -strparse offset для ASN.1-декодирования вложенной структуры. Идентификация и выбор нужных полей - ваша работа, и в целом это может быть затруднительно, но поскольку DN и расширения маркируют каждый из своих элементов предшествующим OID (который OpenSSL называет просто OBJECT), а asn1parse декодирует все OID, известные openssl (и вы можете дать это дополнительные), вы обычно можете просто визуально сканировать для поиска countryName , commonName и тому подобное. Примечание по PEM: многие функции openssl создают или принимают и игнорируют "комментарии" в данных формата PEM, но asn1parse этого не делает. Он будет обрабатывать строки dash-BEGIN и dash-END, но почти все остальное будет обрабатываться как часть данных, вызывающих неверные результаты. Убедитесь, что ваш входной файл (или канал или что-то еще) содержит только один сертификат.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .