我正在使用programming project that includes a bash script创建证书签名请求。
给我带来麻烦的是:
openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout example.com.key -out example.com.csr -subj "/CN=example.com/emailAddress=webmaster@example.com/O=MyOrganization/OU=MyUnit/C=US/ST=AR/L=Fayetteville"
几乎所有属性看起来都很棒,但由于某些可怕的原因,openssl将emailAddress行与常用名称进行网格划分,导致浏览器中出现无效的证书问题。
openssl req -text -noout -verify -in example.com.csr
verify OK Certificate Request: Data: Version: 0 (0x0) Subject: CN=example.com/emailAddress=webmaster@example.com, O=MyOrganization, OU=MyUnit, C=US, ST=AR, L=Fayetteville
请注意它是如何将它们混合在一起的:
CN=example.com/emailAddress=webmaster@example.com
我希望它能识别出不同的属性:
CN=example.com, emailAddress=webmaster@example.com
答案 0 :(得分:16)
如果我首先列出emailAddress属性,
openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout example.com.key -out example.com.csr -subj "/emailAddress=webmaster@example.com/CN=example.com/O=MyOrganization/OU=MyUnit/C=US/ST=AR/L=Fayetteville"
然后它似乎能够区分它就好了。
openssl req -text -noout -verify -in example.com.csr
verify OK Certificate Request: Data: Version: 0 (0x0) Subject: emailAddress=webmaster@example.com, CN=example.com, O=MyOrganization, OU=MyUnit, C=US, ST=AR, L=Fayetteville
答案 1 :(得分:0)
当天电子邮件地址可能是主题字段的一部分。电子邮件地址有一个subjectAltName字段,这是我们真正应该使用的。这引起了对“/ emailAddress =”部分如何被解析的一些混淆。