我在客户端的服务器上遇到了这样的问题,因为我不知道如何在其他证书中验证 SSLCertificateChainFile。我有一个包含大量 SSL 证书密钥和相应文件(.crt、.key)的文件夹。另外,我知道 my.example.com 站点的 SSLCertificateFile 和 SSLCertificateKeyFile。我检查了它们之间的 MD5 哈希值:
openssl x509 -noout -modulus -in my-exam.crt| openssl md5
(stdin)= d41d8cd98f00b204e9800998ecf8427e
openssl rsa -noout -modulus -in my-exam.key | openssl md5
(stdin)= d41d8cd98f00b204e9800998ecf8427e
其他证书文件具有其他名称,并且与my-exam
.
我的问题是: 如果我们已经知道SSLCertificateFile和SSLCertificateKeyFile,如何使用OpenSSL在其他证书文件中找出SSLCertificateChainFile?
答案1
做一个for循环:
for file in *.pem; do
if openssl verify -CAfile "$file" my-exam.crt>/dev/null 2>&1; then
echo "Chainfile:$file";
fi;
done
例如。输出:
Chainfile:ca_chain.pem
我假设链文件是 pem 格式,否则在 for 循环中更改它。
答案2
经过不长的研究,我找到了验证 SSLCertificateChainFile 与我的 SSLCertificateFile 和 SSLCertificateKeyFile 相关的方法。当 OpenSSL 验证证书时,它首先创建整个证书链。以下命令
sudo openssl verify -verbose -CAfile sf_bundle.crt my-exam.crt
帮助我验证我的 SSLCertificateChainFile (sf_bundle.crt
)。输出必须是:
my-exam.crt: ok
对于其他 .crt 文件,我只得到错误。