1

我正在使用以下命令生成带有 openssl 版本 1.0.1e 的 CA 证书:

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

当我使用 HEX 编辑器编辑 ec_ca_cert.der 文件时,我可以清楚地看到 Country 字段被编码为 PRINTABLESTRING (Type=0x13),而所有其他字段 (Locality Name、Organization Name、Organization Unit Name、Common Name) 是编码为 UTF8STRING(类型=0x0c)。

这是有原因的,还是我的流程有问题,或者是openssl问题?

4

1 回答 1

1

我在 openssl-users 论坛中得到了以下答案:“countryName 总是一个 PrintableString,并且总是 2 个字符长。有关规范定义,请参阅 X.520,包含在 RFC5280 中以获取信息。”

于 2013-06-26T14:37:01.847 回答