我正在使用OpenSSL,需要一个理智的默认CA列表。我正在使用Mozilla的受信任CA列表,如bundled by cURL。但是,我需要拆分CA证书的这种捆绑,因为OpenSSL documentation says:如何将CA证书包拆分为单独的文件?
如果CApath不为空,它指向包含PEM格式的CA证书的目录。每个文件都包含一个CA证书。这些文件由CA主题名称哈希值查找,因此必须可用。
例如,直接使用ca-bundle.crt
文件正常工作:
openssl-1.0.1g> ./apps/openssl s_client -connect www.google.com:443 -CAfile /home/user/certs/ca-bundle.crt
...
Verify return code: 0 (ok)
---
DONE
但指定包含ca-bundle.crt
文件的目录不起作用:
openssl-1.0.1g> ./apps/openssl s_client -connect www.google.com:443 -CApath /opt/aspera/certs
Verify return code: 20 (unable to get local issuer certificate)
---
DONE
我想这是因为我的文件夹不符合文档要求的内容(即包含PEM格式的CA证书的目录,每个文件包含一个由哈希值命名的证书)。我的目录只有一捆证书。
如何拆分我的证书包以遵守OpenSSL的要求,即每个证书都在单个文件中?如果哈希也可以完成(如果需要的话,如果所有证书都在单个文件中,我可以编写一个脚本来自己完成)。
适合我。应该是一个被接受的答案。 –