CA 证书的 OpenSSL 扩展

OpenSSL extensions to CA certificate

我正在使用 OpenSSL v1.1.1g 并尝试使用以下 bat 脚本向我的自签名 CA 证书添加扩展:

rem #Create CSR
openssl req -newkey rsa:4096 -keyout ca-key.pem -out ca.csr -subj "..." -addext "keyUsage = cRLSign, digitalSignature, keyCertSign"
rem #Sign it
openssl x509 -signkey ca-key.pem -in ca.csr -req -days 365 -out ca-cert.pem -extfile extensions.cnf
pause

这是extensions.cnf的内容:

subjectAltName=DNS:localhost,IP:0.0.0.0,IP:127.0.0.1
crlDistributionPoints = URI:http://localhost:4444/crl.crl
keyUsage = cRLSign, digitalSignature, keyCertSign
basicConstraints=critical,CA:true,pathlen:0

似乎 -addext 和 -extfile 都没有将密钥使用添加到证书中,但 crlDistributionPoints 和 basicConstraints 有效。 有人可以 post 解决如何通过类似的命令行命令添加 keyusage 内容吗?我不想编辑 openssl.cnf.

编辑:添加了 CA 证书的图像 CAcert

似乎所有这些怪事的原因都是我对 openssl.cnf 的厌恶。 默认配置在后台使用,我只需要自己创建一个最小的配置而不是使用默认配置。