我是 Linux 新手,正在公司系统上安装 Oracle Virtualbox 的 Ubuntu 18.0401 LTS 上学习 Linux。公司有私人代理网络。因此,我在 ubuntu 上浏览的所有网站都通过代理并获得公司颁发的 SSL 证书。当我从 chrome/firefox 浏览时,它会出现错误,例如来源不可信。当我转到 > 高级 > 添加例外时,我可以浏览该特定网站一段时间,然后过一段时间再次出现相同的错误(可能是证书详细信息发生了变化)在浏览器中,至少我经过这样的努力可以浏览,但 Ubuntu 软件甚至没有提供这样的选项,我根本无法下载任何软件。CLI apt-get 也不起作用。有人能告诉我一种配置方法,让我们完全绕过系统范围内的 SSL 验证吗?比如 --disable SSL 证书验证。这样我就可以无缝连接到互联网了吗?(当然,被代理阻止的网站仍然会被阻止)
提前致谢!
NK,Linux 爱好者
PS:以下是firefox上的错误;
“您的连接不安全 support.mozilla.org 的所有者对其网站配置不当。为了保护您的信息不被盗用,Firefox 未连接到此网站。”
答案1
在 Ubuntu 中完全禁用 SSL 证书验证
幸运的是,除了再次编译相关应用程序并在代码中禁用证书验证外,这实际上是不可能的。
正确的做法不是禁用验证,而是将代理使用的 CA 证书添加为受信任证书。这样,您就可以在没有任何警告的情况下使用代理,但仍然不会像禁用所有验证那样容易受到任意中间人攻击。
请向您的网络管理员索取正确的 CA 证书,然后按照示例所述进行安装这里适用于 Firefox(尽管这个特定的网站是针对 Windows 的,但它与 Linux 上的 Firefox 相同)。
答案2
正确的方法是添加代理使用的 CA 证书。如果频繁轮换证书,这可能会很烦人。要安装证书,以便代理使用它们最多应用程序(与使用自己的证书存储区的 Firefox 不同),执行以下操作:
- 获取 Base64 编码 X.509 格式的证书。
获取证书的简单方法是通过IT 管理/自动更新系统上的ChromeSettings
,通过Advanced
、 。Manage Certificates
- 将其复制到
/usr/local/share/ca-certificates
(可选择创建一个新的子文件夹) - 如果扩展名不是 .crt,请重命名文件。
sudo update-ca-certificates
重复此练习时,证书可能不会更新。您可以通过先运行来解决此问题。
sudo rm -f /etc/ssl/certs/[certificate-name].pem
其中[certificate-name]
匹配不带原始 (.crt) 扩展名的证书文件名。
注意:在 Ubuntu 16.04 下测试,但我预计在 18.04 下其行为也将相同。