Manjaro系统添加可信CA证书失败求助
Manjaro系统添加可信CA证书失败求助
我之前在Manjaro上折腾自签CA证书的时候也踩过一模一样的坑!别慌,咱们先理清楚问题出在哪,再一步步解决。
首先看你做的操作:把证书放到/etc/ca-certificates/trust-source/anchors/、执行trust extract-compat和update-ca-trust extract,这些步骤其实都是对的——这是Arch系(包括Manjaro)添加用户信任CA的标准流程。那为啥openssl verify pets.crt还会报自签错误?
核心原因
openssl verify默认直接验证单张证书时,不会自动去读取系统的信任库。自签证书本身没有上级CA签名,所以单独验证它肯定会报错,哪怕你已经把它加到系统信任链里了。
解决方法
方法一:验证时指定系统信任库
Manjaro的系统合并后CA证书文件在/etc/ssl/certs/ca-certificates.crt,你可以用这个文件作为信任源来验证:
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt pets.crt
这样应该就能得到验证通过的结果了,因为这个文件里已经包含了你刚添加的pets.crt。
方法二:确认证书已被系统正确信任
先检查证书是否真的被导入到系统信任列表里:
trust list | grep api.pets.kruts.net
如果能输出包含CN = api.pets.kruts.net的内容,说明导入成功了。这时候其实你用浏览器、curl等工具访问这个域名的服务时,应该已经不会出现证书错误了——刚才的openssl报错只是单独验证证书的问题,不影响实际使用。
额外排查点
如果上面的方法还是不行,你可以检查这两个细节:
- 证书格式:确保
pets.crt是PEM格式(文件内容开头是-----BEGIN CERTIFICATE-----)。如果是DER格式,先转成PEM:
再把openssl x509 -inform der -in pets.crt -out pets.pempets.pem放到anchors目录重新执行提取命令。 - 文件权限:证书放到
anchors目录后,权限需要是644,不然系统可能读不到:
然后重新执行:sudo chmod 644 /etc/ca-certificates/trust-source/anchors/pets.crtsudo trust extract-compat sudo update-ca-trust extract
备注:内容来源于stack exchange,提问作者k k
相关产品推荐
相关产品推荐

