样本 openssl root ca 配置来自 OpenSSL Cookbook定义以下内容 (p40):
[req]
...
req_extensions = ca_ext
[ca_ext]
...
稍后 (p43),生成根 ca key ,然后是根 ca 自签名证书。
openssl req -new \
-config root-ca.conf \
-out root-ca.csr \
-keyout private/root-ca.key
openssl ca -selfsign \
-config root-ca.conf \
-in root-ca.csr \
-out root-ca.crt \
-extensions ca_ext
在这个特定用例中,req_extensions 不是多余的吗? 什么时候真正需要 req_extension?
最佳答案
req_extensions
用于声明要包含在 PKCS #10 证书签名请求 (CSR) 对象中的请求扩展。这些扩展是 CSR 中签名数据的一部分。
通常,CA 在创建和签署 X.509 证书以响应 CSR 时,并根据证书配置文件,可能会或可能不会注意特定的请求扩展。您将需要使用它来生成 CSR,以便与希望以这种方式传达特定信息的 CA 一起使用。
OpenSSL 本身不会将 PKCS #10 请求中的任何扩展复制到 X.509 证书;必须明确声明证书的所有扩展。 OpenSSL x509
man page提供一些评论:
Extensions in certificates are not transferred to certificate requests and vice versa.
因为您使用的是 OpenSSL CA,所以 req_extensions
的使用确实是多余的。
关于openssl - 配置中的 req_extensions 和命令行上的 -extensions 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31274766/