【问题标题】:CA signed X509 cert contains X509v3 extension "Subject Alternative Name" twiceCA 签署的 X509 证书包含两次 X509v3 扩展“主题备用名称”
【发布时间】:2018-06-11 00:18:02
【问题描述】:

如果我使用 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 错误还是对此有任何有效的解释?

【问题讨论】:

  • 你不应该同时使用-signkey-CA [-CAkey]——它们在语义上是冲突的,因为-signkey是自签名的,-CA/key是非自签名的;单独使用任何一个都会给我一个正确的结果。但是,openssl 应该(IMO)给出错误消息或至少通过抑制其中一个选项来解决问题,而不是默默地做错事。
  • 你完全正确!没有任何意义,如果跳过-signkey,重复条目就会消失。无论如何,它仍然是一个奇怪的副作用。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多