Ubuntu安装自签根证书全攻略,解决浏览器信任问题

admin
本文详细介绍了在Ubuntu系统中安装自签根证书的完整流程,针对浏览器默认不信任自签证书导致无法访问的问题,提供了具体的操作指南,通过本攻略,用户可顺利完成证书导入与配置,有效解决浏览器信任难题,确保服务正常访问。

在日常开发或运维工作中,我们经常会遇到需要访问内网服务、测试环境或私有CA签发的网站,由于这些网站使用的是“自签证书”,现代浏览器(如Chrome、Firefox、Edge)会严格拦截访问,并显示“您的连接不是私密连接”或“NET::ERR_CERT_AUTHORITY_INVALID”的错误提示。

在Ubuntu系统中,解决这个问题的最有效方法是将自签证书导入到系统的信任库中,本文将详细介绍在Ubuntu下安装自签根证书的两种方法:系统级安装和用户级安装。

准备工作

你需要拥有自签证书的文件,通常它是一个 .crt.pem.cer 文件,如果你的文件是 .key 格式,你需要先将其转换为 .crt 格式(通常包含公钥和中间证书)。

Ubuntu安装自签根证书全攻略,解决浏览器信任问题

系统级安装(推荐用于服务器或SSH)

这种方法会将证书添加到操作系统的全局信任库中,所有用户都可以使用,并且系统服务(如 curlwgetgitopenssh-client)都会信任该证书。

  1. 复制证书文件: 将你的证书文件复制到系统证书目录。

    sudo cp your-self-signed.crt /usr/local/share/ca-certificates/
  2. 重命名文件(重要): Ubuntu的证书更新工具要求证书文件必须以 .crt 如果你的文件后缀不是 .crt,请先重命名。

    sudo mv /usr/local/share/ca-certificates/your-self-signed.crt /usr/local/share/ca-certificates/your-self-signed.crt
  3. 更新证书库: 运行 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”的提示。

  4. 验证: 现在你可以使用 curlopenssl 验证该证书是否已被信任。

    curl -v https://your-self-signed-site.com

    如果输出中包含 Verify return code: 0 (ok),说明系统级安装成功。


用户级安装(推荐用于桌面环境浏览器)

如果你只想在当前用户的浏览器中使用该证书,而不影响系统其他部分,可以使用用户级安装。

  1. 创建目录: 确保用户证书目录存在。

    mkdir -p ~/.local/share/ca-certificates/
  2. 复制证书文件:

    cp your-self-signed.crt ~/.local/share/ca-certificates/
  3. 重命名文件:

    mv ~/.local/share/ca-certificates/your-self-signed.crt ~/.local/share/ca-certificates/your-self-signed.crt
  4. 更新证书库: 同样运行更新命令,但这次通常不需要 sudo(因为目录属于当前用户)。

    update-ca-certificates
  5. 刷新浏览器: 更新完成后,必须重启浏览器(Chrome/Edge通常需要完全退出进程重新打开)才能识别新添加的证书,在浏览器地址栏输入 chrome://settings/certificatesedge://settings/certificates,你应该能在“受信任的根证书颁发机构”列表中看到你刚刚添加的证书。


常见问题排查

  • 文件后缀问题: 如果忘记将文件重命名为 .crtupdate-ca-certificates 命令会报错“skipping /usr/local/share/ca-certificates/your-cert”。
  • 权限问题: 如果在复制文件到 /usr/local/ 时遇到权限
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码