如何使用emailAddress oneline创建CSR?

时间:2016-07-18 16:09:30

标签: openssl

我正在使用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

2 个答案:

答案 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 =”部分如何被解析的一些混淆。