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
2
3
4
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

这表示你的证书已成功加入系统信任链。


✅ 验证是否生效

再次运行你的 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