- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试 git clone 一些存储库,但随后出现错误:
$ git clone --recursive https://some-url.git
Cloning into 'project'...
fatal: unable to access 'https://https://some-url.git/': Unknown SSL protocol error in connection to
some-url.git:443
我读到,由于 POODLE,git 存储库已移动以强制使用 TLS1.0 并且不再支持 SSLv3 通信漏洞。但我不知道这个错误消息是否意味着我的 git 客户端只知道谈论 SSLv3 而服务器拒绝,或者服务器只知道谈论 SSLv3 而我的客户端拒绝。如果问题出在我的客户端,我该如何配置它以使用 TLS;另一方面,如果是服务器,我该如何解决?
SourceTree 和 scm git(控制台和 gui)都收到错误。
最佳答案
how can I configure it to use TLS?
Git 2.5(2015 年 8 月)已经允许在协商 SSL 连接时使用 http.sslCipherList
和 GIT_SSL_CIPHER_LIST
指定密码列表。
(参见 Cannot communicate securely with peer: no common encryption algorithm(s))
从 Git 2.6+(2015 年第 3 季度)开始,可以明确指定 SSL 版本:
http
: add support for specifying the SSL version
参见 commit 01861cb (2015 年 8 月 14 日)Elia Pinto (devzero2000
) .
帮助:Eric Sunshine (sunshineco
) .
(由 Junio C Hamano -- gitster
-- merge 于 commit ed070a4 ,2015 年 8 月 26 日)
http.sslVersion
The SSL version to use when negotiating an SSL connection, if you want to force the default.
The available and default version depend on whether libcurl was built against NSS or OpenSSL and the particular configuration of the crypto library in use. Internally this sets the 'CURLOPT_SSL_VERSION
' option; see the libcurl documentation for more details on the format of this option and for the ssl version supported.
Actually the possible values of this option are:
- sslv2
- sslv3
- tlsv1
- tlsv1.0
- tlsv1.1
- tlsv1.2
Can be overridden by the '
GIT_SSL_VERSION
' environment variable.
To force git to use libcurl's default ssl version and ignore any explicithttp.sslversion
option, set 'GIT_SSL_VERSION
' to the empty string.
上面的设置很重要,因为GitHub now (Feb. 2018) forces disabling weak cryptographic standards .
On February 8, 2018 we’ll start disabling the following:
- TLSv1/TLSv1.1: This applies to all HTTPS connections, including web, API, and git connections to https://github.com and https://api.github.com.
- diffie-hellman-group1-sha1: This applies to all SSH connections to github.com
- diffie-hellman-group14-sha1: This applies to all SSH connections to github.com
Git 2.18(2018 年第 2 季度)现在可以使用 TLSv1.3:
当使用更新的 cURL
构建时,GIT_SSL_VERSION
现在可以指定“tlsv1.3
”作为它的值。
参见 commit d81b651 (2018 年 3 月 29 日)Loganaden Velvindron (loganaden
) .
(由 Junio C Hamano -- gitster
-- merge 于 commit 9b59d88 ,2018 年 4 月 11 日)
http
: allow use of TLS 1.3Add a tlsv1.3 option to
http.sslVersion
in addition to the existing tlsv1.[012] options.
libcurl
has supported this since 7.52.0.This requires OpenSSL 1.1.1 with TLS 1.3 enabled or
curl
built with recent versions of NSS or BoringSSL as the TLS backend.
在 Git 2.21(2019 年第一季度)中,一个新的“http.version
”配置变量可以与最近足够的 cURL 库一起使用,以强制版本HTTP 用于在获取和推送时进行对话。
参见 commit d73019f (2018 年 11 月 9 日)Force Charlie (fcharlie
) .
(由 Junio C Hamano -- gitster
-- merge 于 commit 13d9919 ,2019 年 1 月 4 日)
http: add support selecting http version
Usually we don't need to set
libcurl
to choose which version of the HTTP protocol to use to communicate with a server.
But different versions oflibcurl
, the default value is not the same.
CURL >= 7.62.0: CURL_HTTP_VERSION_2TLS
CURL < 7.62: CURL_HTTP_VERSION_1_1
In order to give users the freedom to control the HTTP version, we need to add a setting to choose which HTTP version to use.
git config
man page现在显示:
http.version:
Use the specified HTTP protocol version when communicating with a server.
If you want to force the default.
The available and default version depend onlibcurl
.
Actually the possible values of this option are:
- HTTP/2
- HTTP/1.1
关于git - 如何克服 git 错误 `Unknown SSL protocol error in connection`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28217692/
使用 caret::train() 运行逻辑回归模型时出现问题。LR = caret::train(Satisfaction ~., data= log_train, method = "glm",
我正在尝试将nginx容器作为我所有网站和Web服务的主要入口点。我设法将portainer作为容器运行,并且可以从互联网上访问它。现在,我正在尝试访问由另一个Nginx容器托管的静态网站,但这样做失
我有一个在 Windows XP SP3 x86 上运行的 Visual Studio 2008 C# .NET 3.5 应用程序。在我的应用程序中,我有一个事件处理程序 OnSendTask 可以同
我在 Eclipse 中创建了作为独立程序执行的此类,它可以毫无问题地连接所有 http URL(例如:http://stackoverflow.com),但是当我尝试连接到 https(例如 htt
我在我的 nginx 错误日志中收到大量以下错误: connect() failed (111: Connection refused) while connecting to upstream 我的
我正在尝试将新的 log4j2 与 Socket Appender 一起使用,但我有点不走运。这是我的 XML 配置文件:
我目前正在尝试寻找 Android 应用程序后端的替代方案。目前,我使用 php servlet 来查询 Mysql 数据库。数据库(Mysql)托管在我大学的计算机上,因此我无法更改任何配置,因为我
类MapperExtension有一些方法,before_insert, before_update, ...都有一个参数connection. def before_insert(self, map
嗨,我正在尝试更改位于连接库 (v 5.5) 中的文档的文档所有者,我仍在等待 IBM 的回复,但对我来说可能需要太长时间,这就是我尝试的原因逆向工程。 我尝试使用标准编辑器 POST 请求将编辑器更
我在 nginx( http://52.xx.xx.xx/ )上访问我的 IP 时遇到 502 网关错误,日志只是这样说: 2015/09/18 13:03:37 [error] 32636#0: *
我要实现 Connected-Component Labeling但我不确定我应该以 4-connected 还是 8-connected 的方式来做。我已经阅读了大约 3 种 Material ,但
我在Resources ->JMS ->Connection Factories下有两个连接工厂。 1) 连接工厂 2)集成连接工厂 我想修改两个连接工厂下连接池的最大连接数。资源 ->JMS ->连
我在将 mongoengine 合并到我的 django 应用程序时遇到问题。以下是我收到的错误: Traceback (most recent call last): File "/home/d
上下文 我正在关注 tutorial on writing a TCP server last week in Real World Haskell .一切顺利,我的最终版本可以正常工作,并且能够在
我在访问我的域时遇到了这个问题:我看到了我的默认 http500 错误 django 模板正在显示。 我有 gunicorn 设置: command = '/usr/local/bin/gunicor
我更换了电脑,并重新安装了所有版本:tomcat 8 和 6、netbeans 8、jdk 1.7、hibernate 4.3.4,但是当我运行 Web 应用程序时,出现此错误。过去使用我的旧电脑时,
您好,我是这个项目的新手,我在 CentOS7 ec2 实例上托管它时遇到问题。当我访问我的域时出现此错误: 2017/02/17 05:53:35 [error] 27#27: *20 connec
在开始之前,我已经查看了所有我能找到的类似问题,但没有找到解决我的问题的方法。 我正在运行 2 个 docker 容器,1 个用于 nginx,1 个用于 nodejs api。我正在使用 nginx
使用 debian 包将 kaa -iot 平台配置为单节点时。我收到以下错误。 himanshu@himpc:~/kaa/deb$ sudo dpkg -i kaa-node-0.10.0.deb
我是我公司开发团队的成员,担任管理员角色。我可以通过 https://developer.apple.com/ 访问团队的成员(member)中心 但是,当我尝试在 https://itunescon
我是一名优秀的程序员,十分优秀!