我在一家中型公司(足够大,以至于系统人员位于不同的城市)中使用linux和windows。
在linux上,chrome和firefox拒绝连接到一些需要https:连接的流行网站,说“您的连接不是私有的”以及一些有关证书的错误。 Twitter 就是一个例子(我不会在 Twitter 上发帖,只是为了阅读我被指示阅读的内容)。另一方面,gmail(也使用 https)可以在 linux 上访问。 [这是在最新的 Ubuntu 系统,版本 16.x 上]
令人费解的事情(对我来说):在Windows上,没有问题,没有网站被阻止。
可能是什么原因造成的?关于如何调试它有任何提示吗?
请保持答案相当简单。我懂一点编程,但对系统或网络一无所知。
答案1
您的公司和/或管理您的计算机系统和网络的人员(特别是您的代理)已将其配置为监视来自其系统的所有网络流量。如今,这是正常的,并且是通过指定受信任的证书颁发机构来完成的,通常是在 Internet Explorer 中,由您的公司或网络管理员指定。为了让您在某个外部站点获得 https 连接,您必须通过他们的代理,也有他们的受信任的证书。从技术上讲,这相当于一种中间人攻击,因为当您连接到任何 https 站点时,您的公司都会知道您在做什么。如果您认为您电脑上的 IE 之间的加密连接https://www.google.com/?gws_rd=ssl
只是您和谷歌之间的连接,请再想一想。从技术上讲,您首先在 IE 和代理之间进行加密,控制该代理服务器的管理员将知道您所做的一切,因为该代理然后将 SSL 通信移交给您要去的任何外部站点。
您的 Linux 系统存在问题,因为它是一个不受您公司管理的不同系统,或者网络管理员没有您公司的可信证书。您需要从公司计算机上的 IE 手动导出它,然后将其导入到给定计算机系统上的 firefox/chrome/任何浏览器中。另请注意,在 Linux 中,浏览器可以使用与系统上默认的 SSL 不同的 SSL(可能位于/etc/ssl/certs
.
这就是说,如果您手动导入证书,/etc/ssl/certs
以便您的 Linux 操作系统可以像 SUSE 或 Redhat 一样更新存储库以进行修补,那么即使您告诉它使用系统设置,也不要指望 Firefox 能够工作。如果您手动将证书导入到 Firefox 中,同样如此,不要指望内核和任何在线更新管理器知道任何有关它的信息。
IE - 工具 - Internet 选项 - 内容 - 证书 - 受信任的根证书颁发机构
这将填充在您的 Windows 电脑上,查找突出的并且最有可能包含您的公司或公司的名称。将其导出到一个文件,您可以复制到您的 Linux 或其他系统。
Firefox:工具-选项-高级-证书-查看证书-权限-导入
要更新 Linux 系统,我知道如何在斯莱斯在 /etc/ssl/certs 下。它相当于以正确的格式从 IE 导出 SSL,然后将文件复制到 Linux。 IE 以 CER 格式导出,而 linux 需要 PEM 格式,因此您需要将 CER 文件复制到 linux 的某个临时文件夹中,并且每次执行时
openssl x509 -inform der -in IE_exported_cert.CER -out cert_for_linux.PEM
/etc/ssl/certs
对于作为新证书的每个 PEM 文件,将这些 PEM 文件复制到此文件夹中并在其中执行以下操作
ln -s cert_for_linux.PEM `openssl x509 -hash -noout -in cert_for_linux.PEM`.0