ubuntu更新根证书
遇到的错误:
1 | curl: (60) SSL certificate problem: unable to get local issuer certificate |
说明 curl
在验证服务器证书时找不到对应的 CA 根证书,也就是说你的系统没有信任该网站所使用的证书签发机构(CA)。
✅ 你有根证书,可以手动添加到 Ubuntu 系统的信任库中,以下是完整解决步骤:
🔧 步骤 1:确认你有 CA 的根证书文件
你可能有一个 .crt
或 .pem
文件,例如:
1 | my-ca.crt |
如果没有,请从你的证书颁发机构获取。
🔧 步骤 2:将证书复制到系统证书目录
以 root 权限执行以下命令:
1 | sudo cp my-ca.crt /usr/local/share/ca-certificates/ |
注意:
- 证书文件名必须是
.crt
后缀; - 推荐放在
/usr/local/share/ca-certificates/
目录下。
🔧 步骤 3:更新系统证书信任库
运行以下命令更新系统的 CA 信任列表:
1 | sudo update-ca-certificates |
输出类似:
1 | Updating certificates in /etc/ssl/certs... |
这表示你的证书已成功加入系统信任链。
✅ 验证是否生效
再次运行你的 curl
命令:
1 | curl -v https://vpn.ownding.xyz |
如果一切正常,就不会再报 unable to get local issuer certificate
错误了。
📌 补充说明
如果你使用的是自签名证书:
- 你也需要把服务端使用的 服务器证书本身 添加为信任证书,或者在客户端使用
--cacert
指定它:
1 | curl --cacert /path/to/server.crt https://vpn.ownding.xyz |
🛡️ 安全提示
- 不要随意添加不可信的证书到系统信任库,这会带来安全风险。
--insecure
(即-k
)参数虽然能绕过证书验证,但不建议在生产环境中使用。
✅ 总结
问题 | 解决方式 |
---|---|
curl 报错 unable to get local issuer certificate |
将根证书添加到系统信任库 |
有根证书怎么处理? | 复制到 /usr/local/share/ca-certificates/ 并运行 update-ca-certificates |