Поле названия страны в CA, сгенерированное openssl, кодируется как PRINTABLESTRING, тогда как другие поля имеют UTF8STRING.

Я создаю сертификат CA с openssl версии 1.0.1e с помощью следующих команд:

openssl ecparam -out ec_key.pem -name secp384r1 -genkey
openssl req -new -key ec_key.pem -x509 -nodes -days 1460 -out ec_ca_cert.pem

В конце этого процесса я ввожу поля DN следующим образом:

Country Name (2 letter code) [AU]:US
State or Province Name (Full Name) [Some-State]:Florida
Locality Name (eg, city)[]:Miami
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Coca Cola
Organization Unit Name (eg, section) []:Drinks 
Common Name (e.g. server FQDN or YOUR name) []:Miki 
Email Address []:

Я конвертирую сертификат ec_ca_cert.pem в формат DER:

openssl x509 -in ec_ca_cert.pem -inform PEM -out ec_ca_cert.der -outform DER

Когда я редактирую файл ec_ca_cert.der с помощью HEX-редактора, я ясно вижу, что поле Страна кодируется как PRINTABLESTRING (Тип =0x13), тогда как все остальные поля (Название населенного пункта, Название организации, Название организационной единицы, Общее имя) кодируется как UTF8STRING (тип =0x0c).

Есть ли причина для этого, или проблема в моем процессе, или проблема openssl?

1 ответ

Решение

На форуме openssl-users я получил следующий ответ: "countryName ВСЕГДА является строкой PrintableString и ВСЕГДА длиной 2 символа. См. Нормативное определение X.520, включенное в RFC5280 для получения информации".

Другие вопросы по тегам