以编程方式将SSL证书安装到浏览器的存储中

时间:2019-03-19 17:41:32

标签: go firefox certificate

我有一个用Go编写的应用程序,它需要网络浏览器(最好是Firefox)安装自签名证书。

我当然可以向最终用户提供有关如何安装证书的说明,但这远非理想。

理想情况下,我想以编程方式添加证书-使用firefox API,命令行,注册表黑客或其他方法。当然,我会喜欢跨平台解决方案,但是即使Windows也只是一个开始。

1 个答案:

答案 0 :(得分:0)

我迟到了,但您可以以编程方式将自签名或不受信任的根证书添加到广泛分发的 FireFox(与任何用户的浏览器无关)。这是我在 Ubuntu 18.04 和 FireFox 85.0 上的工作:

  1. 将证书(带有 PEM 格式的 .crt 扩展名)添加到 /usr/local/share/ca-certificates 或 /usr/share/ca-certificates。两者都可以,但您需要在下面以 JSON 格式更新安装位置。
  2. sudo update-ca-certificates
  3. 使用以下代码创建此 json 文件:/usr/lib/firefox/distribution/policies.json
{
    "policies": {
        "Certificates": {
            "ImportEnterpriseRoots": true,
            "Install": [
                "/usr/local/share/ca-certificates/<$NAMEOFYOURCERT.crt>"
      ]
    }
  }
}

您真的可以跳过步骤 1/2,并将 policies.json 文件中的安装位置指向证书所在的任何位置,但这可以确保您的操作系统也信任该证书,而不仅仅是 FireFox。

将这些指令脚本化为用于操作系统安装的引导脚本或一次性脚本以供信任的用户运行非常简单。