本文详细介绍了在Ubuntu系统中安装自签根证书的完整流程,针对浏览器默认不信任自签证书导致无法访问的问题,提供了具体的操作指南,通过本攻略,用户可顺利完成证书导入与配置,有效解决浏览器信任难题,确保服务正常访问。
在日常开发或运维工作中,我们经常会遇到需要访问内网服务、测试环境或私有CA签发的网站,由于这些网站使用的是“自签证书”,现代浏览器(如Chrome、Firefox、Edge)会严格拦截访问,并显示“您的连接不是私密连接”或“NET::ERR_CERT_AUTHORITY_INVALID”的错误提示。
在Ubuntu系统中,解决这个问题的最有效方法是将自签证书导入到系统的信任库中,本文将详细介绍在Ubuntu下安装自签根证书的两种方法:系统级安装和用户级安装。
准备工作
你需要拥有自签证书的文件,通常它是一个 .crt、.pem 或 .cer 文件,如果你的文件是 .key 格式,你需要先将其转换为 .crt 格式(通常包含公钥和中间证书)。

系统级安装(推荐用于服务器或SSH)
这种方法会将证书添加到操作系统的全局信任库中,所有用户都可以使用,并且系统服务(如 curl、wget、git、openssh-client)都会信任该证书。
-
复制证书文件: 将你的证书文件复制到系统证书目录。
sudo cp your-self-signed.crt /usr/local/share/ca-certificates/
-
重命名文件(重要): Ubuntu的证书更新工具要求证书文件必须以
.crt如果你的文件后缀不是.crt,请先重命名。sudo mv /usr/local/share/ca-certificates/your-self-signed.crt /usr/local/share/ca-certificates/your-self-signed.crt
-
更新证书库: 运行
update-ca-certificates命令,该命令会将所有位于/usr/local/share/ca-certificates/下的.crt文件合并到/etc/ssl/certs/目录下的ca-certificates.crt文件中。sudo update-ca-certificates
执行成功后,你会看到类似“Updating certificates in /etc/ssl/certs... done”的提示。
-
验证: 现在你可以使用
curl或openssl验证该证书是否已被信任。curl -v https://your-self-signed-site.com
如果输出中包含
Verify return code: 0 (ok),说明系统级安装成功。
用户级安装(推荐用于桌面环境浏览器)
如果你只想在当前用户的浏览器中使用该证书,而不影响系统其他部分,可以使用用户级安装。
-
创建目录: 确保用户证书目录存在。
mkdir -p ~/.local/share/ca-certificates/
-
复制证书文件:
cp your-self-signed.crt ~/.local/share/ca-certificates/
-
重命名文件:
mv ~/.local/share/ca-certificates/your-self-signed.crt ~/.local/share/ca-certificates/your-self-signed.crt
-
更新证书库: 同样运行更新命令,但这次通常不需要
sudo(因为目录属于当前用户)。update-ca-certificates
-
刷新浏览器: 更新完成后,必须重启浏览器(Chrome/Edge通常需要完全退出进程重新打开)才能识别新添加的证书,在浏览器地址栏输入
chrome://settings/certificates或edge://settings/certificates,你应该能在“受信任的根证书颁发机构”列表中看到你刚刚添加的证书。
常见问题排查
- 文件后缀问题: 如果忘记将文件重命名为
.crt,update-ca-certificates命令会报错“skipping /usr/local/share/ca-certificates/your-cert”。 - 权限问题: 如果在复制文件到
/usr/local/时遇到权限

