来自OpenSSL Cookbook的示例openssl root ca config定义了以下内容(p40):
[req]
...
req_extensions = ca_ext
[ca_ext]
...
稍后(p43),生成root ca key,然后生成root ca selfsigned cert。
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?
答案 0 :(得分:6)
req_extensions
用于声明请求扩展包含在PKCS#10 证书签名请求(CSR)对象中。扩展名是CSR中签名数据的一部分
通常,CA在创建和签署X.509证书以响应CSR时,并且取决于证书配置文件,可能会或可能不会注意特定的请求扩展。您需要使用它来生成CSR,以便与希望以这种方式传达特定信息的CA一起使用。
OpenSSL本身不会将任何扩展从PKCS#10请求复制到X.509证书;必须显式声明证书的所有扩展。 OpenSSL x509
man page提供了一些评论:
证书中的扩展名不会转移到证书请求中,反之亦然。
因为您使用的是OpenSSL CA,所以使用req_extensions
确实是多余的。