在使用 openssl 命令创建证书时,我使用的是这样的自定义配置文件:
prompt = no
distinguished_name = dn
req_extensions = ext
string_mask = pkix
[dn]
CN = распространенное имя
emailAddress = envek@envek.com
O = Организация
OU = SSL Test
L = Москва
C = RU
[ext]
subjectAltName = DNS:BMPString.com,DNS:*.BMPString.com
现在,当我使用此命令执行 asn1parse 时:
openssl asn1parse -in bmp.crt -i -strparse 200
0:d=0 hl=3 l= 243 cons: SEQUENCE
3:d=1 hl=2 l= 87 cons: SET
5:d=2 hl=2 l= 85 cons: SEQUENCE
7:d=3 hl=2 l= 3 prim: OBJECT :commonName
12:d=3 hl=2 l= 78 prim: BMPSTRING
92:d=1 hl=2 l= 30 cons: SET
94:d=2 hl=2 l= 28 cons: SEQUENCE
96:d=3 hl=2 l= 9 prim: OBJECT :emailAddress
107:d=3 hl=2 l= 15 prim: IA5STRING :envek@envek.com
124:d=1 hl=2 l= 53 cons: SET
126:d=2 hl=2 l= 51 cons: SEQUENCE
128:d=3 hl=2 l= 3 prim: OBJECT :organizationName
133:d=3 hl=2 l= 44 prim: BMPSTRING
179:d=1 hl=2 l= 17 cons: SET
181:d=2 hl=2 l= 15 cons: SEQUENCE
183:d=3 hl=2 l= 3 prim: OBJECT :organizationalUnitName
188:d=3 hl=2 l= 8 prim: PRINTABLESTRING :SSL Test
198:d=1 hl=2 l= 33 cons: SET
200:d=2 hl=2 l= 31 cons: SEQUENCE
202:d=3 hl=2 l= 3 prim: OBJECT :localityName
207:d=3 hl=2 l= 24 prim: BMPSTRING
233:d=1 hl=2 l= 11 cons: SET
235:d=2 hl=2 l= 9 cons: SEQUENCE
237:d=3 hl=2 l= 3 prim: OBJECT :countryName
242:d=3 hl=2 l= 2 prim: PRINTABLESTRING :RU
CN、OrganizationName、LocalityName 都在 BMPString 中,但没有在 OrganizationalUnitName 中。
我理解逻辑,因为所有字符都在 OrganizationalUnitName 中 PrintableString 的保护伞下,这就是为什么它被编码为相同的原因。
但我想在 BMPString 中自动编码“PrintableString”字符,这可能吗?
编辑 1:将“除外”更改为“但不是”。
编辑 2:从“CN、Email、OrganizationName、LocalityName 都在 BMPString 但不是 OrganizationalUnitName”中删除了电子邮件。