gpt4 book ai didi

git - SSL 证书拒绝尝试通过防火墙后的 HTTPS 访问 GitHub

转载 作者:IT王子 更新时间:2023-10-29 01:11:20 25 4
gpt4 key购买 nike

我受困于防火墙,因此必须使用 HTTPS 访问我的 GitHub 存储库。我在 Windows XP 上使用 cygwin 1.7.7。

我试过将 Remote 设置为 https://username@github.com/username/ExcelANT.git ,但推送密码提示,但在我输入密码后什么也没做。 https://username:<password>github.com/username/ExcelANT.git并从头开始克隆空的 repo,但每次它都会给我同样的错误

error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/username/ExcelANT.git/info/refs

开启 GIT_CURL_VERBOSE=1给我

* About to connect() to github.com port 443 (#0)
* Trying 207.97.227.239... * successfully set certificate verify locations:
* CAfile: none
CApath: /usr/ssl/certs
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Expire cleared
* Closing connection #0
* About to connect() to github.com port 443 (#0)
* Trying 207.97.227.239... * successfully set certificate verify locations:
* CAfile: none
CApath: /usr/ssl/certs
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Expire cleared
* Closing connection #0
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/username/ExcelANT.git/info/refs

fatal: HTTP request failed

这是我的防火墙、cygwin 还是什么的问题?

我没有在 Git 配置中设置 HTTP 代理,但是它是一个需要 NTLM 身份验证的 ISA 服务器,而不是基本的,所以除非有人知道如何强制 git 使用 NTLM,否则我很沮丧。

最佳答案

问题是您的系统上没有安装任何证书颁发机构证书。并且这些证书不能用 cygwin 的 setup.exe 安装。

更新:Install Net/ca-certificates package in cygwin (感谢 dirkjot)

有两种解决方法:

  1. 实际安装根证书。 Curl guys extracted for you certificates from Mozilla .

cacert.pem 文件就是您要查找的内容。此文件包含 > 250 个 CA 证书(不知道如何信任这个数量的人)。您需要下载此文件,将其拆分为单独的证书,将它们放入/usr/ssl/certs(您的 CApath)并为它们编制索引。

这是如何做到的。使用 cygwin setup.exe 安装 curl 和 openssl 包执行:

<!-- language: lang-bash -->

$ cd /usr/ssl/certs
$ curl http://curl.haxx.se/ca/cacert.pem |
awk '{print > "cert" (1+n) ".pem"} /-----END CERTIFICATE-----/ {n++}'
$ c_rehash

重要:为了使用c_rehash,您还必须安装openssl-perl

  1. 忽略 SSL 证书验证。

    警告:禁用 SSL 证书验证会产生安全隐患。如果不验证 SSL/HTTPS 连接的真实性,恶意攻击者可以冒充受信任的端点(例如 GitHub或其他一些远程 Git 主机),你将容易受到 Man-in-the-Middle Attack 的攻击. 在将其用作解决方案之前,请确保您完全了解安全问题您的威胁模型。

     $ env GIT_SSL_NO_VERIFY=true git clone https://github...

关于git - SSL 证书拒绝尝试通过防火墙后的 HTTPS 访问 GitHub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com