【发布时间】:2014-07-01 21:47:00
【问题描述】:
我正在使用 OpenSSL,需要一个健全的默认 CA 列表。我正在使用 Mozilla 的受信任 CA 列表,如 bundled by cURL。但是,我需要拆分这组 CA 证书,因为 OpenSSL documentation says:
如果 CApath 不为 NULL,它指向一个包含 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 的要求,即每个证书都在一个单独的文件中?如果哈希也可以完成,则可以加分(尽管如果需要,如果所有证书都在单独的文件中,我可以自己编写一个脚本来执行此操作)。
【问题讨论】: