OpenSSL CSR主题行随emailAddress的使用而变化
我正在编写一个简单的脚本,为我们的员工生成CSR,而他们不必担心openssl所需的所有繁琐的位OpenSSL CSR主题行随emailAddress的使用而变化,openssl,x509,Openssl,X509,我正在编写一个简单的脚本,为我们的员工生成CSR,而他们不必担心openssl所需的所有繁琐的位openssl,我注意到主题的emailAddress部分存在一个问题 填写CLI提供的选项时,我的主题大致如下: Subject: C=UK, L=London, O=Org, OU=Unit, CN=my.domain/emailAddress=me@my.domain 如果我在命令行上使用-subc选项并保持参数的顺序相同,结果是相同的: $ openssl req -new -key my.
openssl
,我注意到主题的emailAddress
部分存在一个问题
填写CLI提供的选项时,我的主题大致如下:
Subject: C=UK, L=London, O=Org, OU=Unit, CN=my.domain/emailAddress=me@my.domain
如果我在命令行上使用-subc
选项并保持参数的顺序相同,结果是相同的:
$ openssl req -new -key my.key -out my.csr \
-subj="/C=UK/L=London/O=Org/OU=Unit/CN=my.domain/emailAddress=me@my.domain"
给予
但是,如果我把emailAddress放在前面
$ openssl req -new -key my.key -out my.csr \
-subj="/emailAddress=me@my.domain/C=UK/L=London/O=Org/OU=Unit/CN=my.domain"
我明白了
Subject: emailAddress=me@my.domain, C=UK, L=London, O=Org, OU=Unit, CN=my.domain
我想了解的是:
my.domain/emailAddress=me@my.domain
有效的公用名emailAddress
是有效的主题名称吗CN=my.domain
。OpenSSL只是通过斜杠显示了emailAddress
主题字段,这确实令人困惑!(OpenSSL常见问题解答“旧行为”;我不知道为什么在“旧行为”中会出现这种行为)OpenSSL req
有选项-nameopt
(记录在man x509
中),例如OpenSSL req[…]-nameopt RFC2253
将向您显示主题而不会出现这种混淆
> Is emailAddress a valid subject name?
您是否打算询问“emailAddress是否是主题名称表示的有效部分”
主题名称,根据“…必须包含X.500可分辨名称”。反过来,根据RFC1779,可分辨名称是一个键值对列表,任何具有OID的都可以是键。可以使用“关键字”代替数字OID;RFC1779 friendly声明“IANA维护一个有效关键字的注册。”嗯,emailAddress
有,所以它应该算作“有效”。这一点在本节中特别提到。(当然,OpenSSL可以识别它;它列在objects.h
标题中。)
对我来说,它看起来像前者
现在,您的问题中有一个问题仍然是我的问题:您演示的两个CSR有什么不同,这使得
openssl-req
以两种不同的方式显示它们。精彩的答案,还有更多的文档要读!:)非常感谢。关于差异,通常只改变了参数的顺序(afaik)。我注意到我的openssl版本实际上是libressl(谢谢mac),所以这可能就是它给出旧表示的原因。
> What is CommonName specifically for?
> Is my.domain/emailAddress=me@my.domain a valid CommonName?
> Is emailAddress a valid subject name?
> (RFC5280 is either lacking this information or I don't
> understand it... probably the later)