CA 签名的 X509 证书包含 X509v3 扩展"Subject Alternative Name"两次



如果我使用 OpenSSL 创建一个使用 CA 证书签名并包含 X509v3 SAN(主题备用名称)扩展的 X509 证书,则生成的证书包含 SAN 扩展两次,而如果证书是自签名的,则 SAN 扩展只出现一次(我认为这是正确的)。

重现步骤:

$ openssl version
OpenSSL 1.0.2n  7 Dec 2017
$ openssl genrsa -out example.key 2048
$ openssl req -new -key example.key -out example.csr
# ... confirm certificate defaults only enter "example.com" as Common Name
$ echo subjectAltName=DNS:example.com,DNS:www.example.com > example.cnf
$ openssl x509 -req -sha256 -days 7300 -text -extfile example.cnf 
-in example.csr -signkey example.key 
-CA ../ca.crt -CAkey ../ca.key -set_serial 01 
-out example.crt

之后,如果我输入证书,则"X509v3 主题备用名称">部分将打印两次:

$ openssl x509 -in example.crt -text -noout
...
X509v3 extensions:
X509v3 Subject Alternative Name: 
DNS:example.com, DNS:www.example.com
X509v3 Subject Alternative Name: 
DNS:example.com, DNS:www.example.com
...

如果未使用 CA,并且证书通过以下方式获得自签名,则情况并非如此:

$ openssl x509 -req -sha256 -days 7300 -text -extfile example.cnf 
-in example.csr -signkey example.key 
-out example.crt

我可以用OpenSSL 1.0.2nOpenSSL 0.9.8zh来验证这种行为。

这是一个OpenSSL错误还是有任何有效的解释?

参见@dave_thompson_085的答案:
同时使用-signkey-CAkey没有任何意义,并触发了这种奇怪的副作用。

相关内容

  • 没有找到相关文章

最新更新