是否可以完全以 BMPString 编码生成证书?
Is it possible to generate a certificate fully in BMPString encoding?
在使用 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:将“except”更改为“but not”。
编辑 2:从“CN、Email、OrganizationName、LocalityName 都在 BMPString 而不是 OrganizationalUnitName 中。”删除了 Email。
CN, Email, OrganizationName, LocalityName are all in BMPString except OrganizationalUnitName
Minor:'except'在英语中的意思是从前面或其他地方一般陈述的内容中减去;当 Y 不包含在 X 中时,说 'X except Y' 是错误的。我相信你的意思可以正确地表述为“CN、电子邮件、组织、地点 [全部] 在 BMPString 但不是 组织单位".
主要:电子邮件不在 BMPString 中。见下文。
对于标准中定义为 DirectoryString
的属性,根据 ASN.1 的版本,它是 CHOICE
类型或扩展为 CHOICE
的宏类型,并且被您拥有的大多数属性使用,配置 string_mask=MASK:0x800
强制它们为 BMPString
.
但是,标准要求国家必须是PrintableString
,电子邮件必须是IA5String
;这些未定义为 DirectoryString
并且不允许编码为 BMPString
.
我假设你意识到 PKIX 标准已经禁止 DN 属性的 BMPString 18 年了,所以任何在 Internet 上使用并维护得足以安全使用的软件今天应该拒绝你的证书。不过,这并不妨碍您创建它们。
在使用 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:将“except”更改为“but not”。
编辑 2:从“CN、Email、OrganizationName、LocalityName 都在 BMPString 而不是 OrganizationalUnitName 中。”删除了 Email。
CN, Email, OrganizationName, LocalityName are all in BMPString except OrganizationalUnitName
Minor:'except'在英语中的意思是从前面或其他地方一般陈述的内容中减去;当 Y 不包含在 X 中时,说 'X except Y' 是错误的。我相信你的意思可以正确地表述为“CN、电子邮件、组织、地点 [全部] 在 BMPString 但不是 组织单位".
主要:电子邮件不在 BMPString 中。见下文。
对于标准中定义为 DirectoryString
的属性,根据 ASN.1 的版本,它是 CHOICE
类型或扩展为 CHOICE
的宏类型,并且被您拥有的大多数属性使用,配置 string_mask=MASK:0x800
强制它们为 BMPString
.
但是,标准要求国家必须是PrintableString
,电子邮件必须是IA5String
;这些未定义为 DirectoryString
并且不允许编码为 BMPString
.
我假设你意识到 PKIX 标准已经禁止 DN 属性的 BMPString 18 年了,所以任何在 Internet 上使用并维护得足以安全使用的软件今天应该拒绝你的证书。不过,这并不妨碍您创建它们。