use*_*934 9 git github intellij-idea
我最近升级了我的 Inteliij IDEA 2019.2,如果我尝试从我的 IDE 中拉出 Git Pull 失败:无法访问 ' https://github.xxx.com/app-Hello-USD/DGS.git,我会遇到以下错误/ ': SSL 证书问题:证书链中的自签名证书。
有人可以帮助我我必须启用什么选项。
谢谢
小智 63
我们可以使用Windows证书存储机制。
请尝试这个
git config --global http.sslbackend schannel
Run Code Online (Sandbox Code Playgroud)
Boš*_*zik 37
当您的 Git 存储库服务器托管在专用网络内并使用本地生成的(自签名)TLS 证书时,通常会发生这种情况。由于该证书不是来自“可信”来源,因此大多数软件都会抱怨连接不安全。
有两种方法可以解决这个问题。首先是禁用 SSL 验证,以便您可以克隆存储库。其次是将自签名证书添加到 Git 作为可信证书。
最快、最简单的方法是在 Git 上全局禁用 SSL 验证来克隆存储库。但克隆后,您将立即再次启用它,否则Git将不会验证其他存储库的证书签名。
git config --global http.sslVerify false
Run Code Online (Sandbox Code Playgroud)
git clone <your repo>
Run Code Online (Sandbox Code Playgroud)
git config --global http.sslVerify true
Run Code Online (Sandbox Code Playgroud)
cd <your repo>
Run Code Online (Sandbox Code Playgroud)
git config --local http.sslVerify false
Run Code Online (Sandbox Code Playgroud)
这是最容易实现的解决方案,但是您将跳过特定存储库的 SSL 验证,并且 Git 将不断显示安全警告消息:
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
Run Code Online (Sandbox Code Playgroud)
如果自签名证书已导入Windows证书存储区,则只需执行以下命令:
git config --global http.sslbackend schannel
Run Code Online (Sandbox Code Playgroud)
这将告诉 Git 从 Windows 证书存储中读取证书。请记住,这有时不起作用(由于某种原因从未对我起作用)。在这种情况下,您可以将自签名证书添加到 OpenSSL 证书包中。
一种高级方法是将自签名证书添加到 Git 可信证书包中。
获取自签名证书:
openssl s_client -connect repo.domain.com:443
Run Code Online (Sandbox Code Playgroud)
复制(包括)之间的所有内容
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
转到C:\Users\<user>\AppData\Local\Programs\Git\usr\ssl\certs
,在您喜欢的编辑器中打开ca-bundle.crt
文件并将证书粘贴到底部:
# My Company Certifiate
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
配置 Git 以用作openssl
证书提供者:
git config --global http.sslbackend openssl
Run Code Online (Sandbox Code Playgroud)
并设置证书包的路径:
git config --global http.sslcainfo C:\Users\<user>\AppData\Local\Programs\Git\usr\ssl\certs\ca-bundle.crt
Run Code Online (Sandbox Code Playgroud)
克隆您的存储库:
git clone <your repo>
Run Code Online (Sandbox Code Playgroud)
这是最佳解决方案,因为我们获得了 SSL 验证的好处,并且那些令人讨厌的安全警告消息将不再显示。
如果您在设置属性值时遇到此错误:
warning: http.sslverify has multiple values
error: cannot overwrite multiple values with a single value
Use a regexp, --add or --replace-all to change http.sslVerify.
Run Code Online (Sandbox Code Playgroud)
打开您的.gitconfig
文件并删除重复的http.sslverify
行或它所抱怨的任何属性。
Cra*_*der 26
git config --global http.sslVerify false
cod*_*key 10
如果要添加自签名证书,请将所需的证书导出为 Base-64 编码的 .CER 文件。找到您的 Git cert.pem 文件(对我来说它位于C:\Program Files\Git\usr\ssl\cert.pem
)。在文本编辑器中打开 .CER 文件,然后将内容复制/粘贴到 cert.pem 文件末尾。保存文件。然后打开你的控制台并输入
git config --global http.sslCAInfo "C:\Program Files\Git\usr\ssl\cert.pem"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22709 次 |
最近记录: |