我正在尝试使用根 CA 为中级证书签署 CSR,OpenSSL 要求我输入密码,之后什么也没发生。没有错误消息,也没有生成证书。失败的命令是:
openssl ca -config rootca.cnf -extensions v3_intermediate_ca ^
-days 730 -notext -md sha256 ^
-in C:/Certificates/IntermediateCA/csr/intermediate.csr.pem ^
-out C:/Certificates/IntermediateCA/public/intermediate.cert.pem
openssl 响应:
Enter pass phrase for C:/Certificates/RootCA/private/rootca.key.pem:
当我输入密码时,什么也没有发生。
这个问题的一个好的答案应该包括两个部分:
- 我究竟做错了什么?
- 我如何获取该问题的错误输出?
额外细节
不确定是否需要,但这里有一些我用来生成其余中间 CA 的附加命令:
创建中级 CA 私钥:
openssl genrsa -aes256 -out private/intermediate.key.pem 4096
创建中级 CSR:
openssl req -config intermediateca.cnf -new -sha256 ^
-key private/intermediate.key.pem ^
-out csr/intermediate.csr.pem
rootca.cnf(重要部分):
[ CA_default ]
dir = C:/Certificates/RootCA
...
[ policy_strict ]
countryName = match
stateOrProvinceName = match
localityName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
...
[ req_distinguished_name ]
0.organizationName_default = org1
1.organizationName_default = org1.1
...
[ v3_intermediate_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true, pathlen:0
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
答案1
openssl 可能认为您的文件已“损坏”。当我在编写一些脚本时index.txt
使用重置文件时也发生了同样的情况。只需删除文件并使用重新创建它就足以让 openssl 再次正常运行。echo '' > index.txt
index.txt
touch index.txt