Поле «Название страны» в ЦС, сгенерированное 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 с помощью шестнадцатеричного редактора, я ясно вижу, что поле «Страна» закодировано как PRINTABLESTRING (тип = 0x13), а все остальные поля (название местности, название организации, название организационной единицы, обычное имя) кодируется как UTF8STRING (тип = 0x0c).

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


person Gaston    schedule 20.06.2013    source источник


Ответы (1)


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

person Gaston    schedule 26.06.2013