如何在 OpenSuse 中为应用程序安装自签名 .pem 证书?

如何在 OpenSuse 中为应用程序安装自签名 .pem 证书?

最近,我的工作场所更新了互联网使用政策,并实施了 Sophos 安全层来监控流量。

我正在尝试克隆 git 存储库(使用git clone命令),但出现以下错误

fatal: unable to access 'https://github.com/openssl/openssl.git/': SSL certificate problem: self signed certificate in certificate chain

这是“暗示的”证书问题。我怎样才能让它发挥作用?

更新1: 证书是正确的,因为它们成功地与浏览器(firefox)配合使用,问题是如何使用这些证书来启用 git SSL 验证。

更新2:

复制从 Firefox 获取的证书(导出自Firefox > 首选项 > 隐私和安全 > 证书 > 查看证书/etc/ssl/certs

以 root 身份执行c_rehash /etc/ssl/certs并且git config --system http.sslCAPath /etc/ssl/certs.

产生以下响应。克隆开始并中途终止

Cloning into 'openssl'...

remote: Enumerating objects: 9, done.

remote: Counting objects: 100% (9/9), done.

remote: Compressing objects: 100% (8/8), done.

fatal: The remote end hung up unexpectedly.89 MiB | 16.11 MiB/s   

fatal: early EOF

fatal: index-pack failed

答案1

看起来 Sophos 安全充当中间人因此您应该禁用此存储库的 SSL/TLS 检查。使用来自 Stackoverflow 的回答:

要禁用单个 git 命令的 TLS/SSL 验证,请尝试使用 -c正确的配置变量传递给 git,或者使用 Flow 的答案:

git -c http.sslVerify=false clone https://example.com/path/to/git 

禁用特定存储库的 SSL 验证 如果存储库完全在您的控制之下,您可以尝试:

git config http.sslVerify false

问题不在于证书,因为该证书(自签名)位于您的计算机上(在 Sophos 安全软件中)。您可以通过停止 Sophos 软件(如果您有权限)并重试(浏览器也是如此)来证明这一点

要安装此证书(如果浏览器接受),请打开浏览器,将其指向 SSL/TLS 站点,单击左侧站点并下载证书(PEM 格式)。然后复制文件/etc/ssl/certs并执行(最终)c_rehash /etc/ssl/certs

您也可以尝试执行

git config http.sslCAInfo /etc/ssl/certs/<self-signed certificate>.pem

或者

git config --system http.sslCAPath /etc/ssl/certs

让 git 接受这个证书

您也可以手工做一些事情。在目录中搜索config文件。.git并在部分添加[http]这些行:

[http]
sslCAInfo = /etc/ssl/certs/<certificate>.pem
sslCAPath = /etc/ssl/certs/<certificate>.pem
sslCert = /etc/ssl/certs/<certificate>.pem

相关内容