无法通过CLI建立TLS1.2连接,openssl访问报本地颁发者证书错误
问题根因
你使用了错误的openssl参数:-CApath用于指定存储多个独立CA证书、且已通过c_rehash生成哈希索引的目录,不能直接指向单个CA证书集合文件。要指定单个CA证书文件,应该使用-CAfile参数。
解决方案
- 方案1:直接修正openssl命令参数,将
-CApath替换为-CAfile即可,执行命令如下:
openssl s_client -CAfile ~/cacert.pem -crlf -connect getcomposer.org:443 -servername getcomposer.org
- 方案2:如果你需要使用
-CApath模式,先按照要求准备CA目录:- 创建专门的CA证书存储目录:
mkdir -p ~/ca_trust_store - 移动CA证书文件到该目录:
mv ~/cacert.pem ~/ca_trust_store/ - 生成目录的哈希索引:
c_rehash ~/ca_trust_store - 调用openssl时使用正确的路径参数:
openssl s_client -CApath ~/ca_trust_store -crlf -connect getcomposer.org:443 -servername getcomposer.org - 创建专门的CA证书存储目录:
异常排查
如果修改参数后仍验证失败,可检查以下项:
- 确认
~/cacert.pem文件权限对当前执行用户可读,可执行chmod 644 ~/cacert.pem修复权限问题 - 确认下载的CA证书文件未损坏,可重新执行下载命令获取最新版证书集
内容的提问来源于stack exchange,提问作者neubert
相关产品推荐
相关产品推荐

