CA签名X509证书包含X509v3扩展名“主题备用名称”两次

时间:2017-12-31 10:01:33

标签: ssl openssl x509certificate x509 subject-alternative-name

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

重现的步骤:

function wpdocs_theme_name_scripts() {
    wp_enqueue_script( 'aos', 'https://cdnjs.cloudflare.com/ajax/libs/aos/2.2.0/aos.js', array('jquery'), 3.3, true); 

}
add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );

之后,如果我查看证书,“X509v3主题备用名称”部分将被打印两次:

$ 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

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

$ 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
...

我可以使用$ openssl x509 -req -sha256 -days 7300 -text -extfile example.cnf \ -in example.csr -signkey example.key \ -out example.crt 以及OpenSSL 1.0.2n验证此行为。

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

1 个答案:

答案 0 :(得分:0)

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