连接中出现未知的 SSL 协议错误

2023-11-29

我想将我的提交推送到 Bitbucket 存储库,但发生了此错误:

Fatal: unable to access
'https://[email protected]/myUsername/myRepository.git/':
Unknown SSL protocol error in connection to bitbucket.org:443

您可以通过以下方式获取更多信息

# Windows
set GIT_CURL_VERBOSE=1
set GIT_TRACE_PACKET=2

# Unix
export GIT_CURL_VERBOSE=1
export GIT_TRACE_PACKET=2

然后尝试一个git push.

如果您有代理设置,请仔细检查您的代理设置。

注意:git 2.8(2016 年 3 月)添加了有关错误 35 的更多信息:

See commit 0054045 (14 Feb 2016) by Shawn Pearce (spearce).
(Merged by Junio C Hamano -- gitster -- in commit 97c49af, 24 Feb 2016)

remote-curl: 包括curl_errorstrSSL 设置失败

For curl错误35(CURLE_SSL_CONNECT_ERROR)用户需要存储在中的附加文本CURLOPT_ERRORBUFFER调试连接未启动的原因。
这是curl_errorstr代替http.c,因此如果消息非空,则将其包含在消息中。


另请查看该消息的常见原因:

如果它以前工作,但今天不工作,则 BitBucket 端的 SSL 私钥可能已过期(见下文,原因 #3),但这里的情况似乎并非如此(证书有效期直到12/03/2014)。


目标站点不喜欢该协议

发出如下所示的请求会导致未知 SSL 协议错误:

curl --sslv2 https://techstacks-tools.appspot.com/

为什么?好吧,在这种情况下,这是因为 techstacks 工具站点不支持 SSLv2,因此生成了curl (35) 错误。

目标站点不喜欢密码

您可能尝试使用站点配置为拒绝的 ssl 密码连接到该站点。
例如,匿名密码通常在面向客户的 ssl 加密站点上被禁用。 (我们中的许多人对任何 SSL 加密的网站都制定了全面拒绝政策——无论其目的是什么。)
以下命令字符串“can”也会导致curl(35)错误:

curl --ciphers ADH-RC4-MD5 https://some_web_site.some_domain.com/

不幸的是,您可以从curl 获得的错误响应类型很大程度上取决于ssl 服务器。在某些网站上,您会收到“未知 SSL 协议”错误,但在我的 techstacks-tools 网站上,我得到:

curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

感谢 Google,因为这个特定的错误比我工作中的网站生成的错误更具描述性,因为这至少告诉您 ssl 套接字已启动,但由于握手失败,套接字永远无法完成。

尝试使用该站点支持的密码连接到该站点。不确定使用哪种密码?好吧,让我介绍一下我的Cryptonark ssl 密码测试仪...

SSL 私钥已过期

今天早些时候,我在使用一个旧的 WebSeAL 网站时遇到了这个问题。
在IBM GSKit 中,您可以指定私钥密码的有效期限。到达特定日期后,您仍然能够启动 webseal 并侦听端口 443(或您设置的 https 端口值),但您将无法成功协商 SSL 会话。
在今天的例子中,旧的 WebSEAL 实例使用过期已久的 kdb 文件和过期已久的私钥密码。一旦更换为正确的、更新的版本,一切都会恢复正常。

重定向不当

一些 ISP 和 DNS 提供商喜欢拦截您失败的 DNS 查询,以便将您重定向到搜索引擎结果样式的页面,为您提供替代 URL 或“您的意思是……?”反查询结果。
如果您看到这样的错误:

 error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol, 

这可能是由于您输入的主机名不正确或者主机名尚未在您的 DNS 中列出。您可以通过简单的“host" or "nslookup".


注意(2015 年 8 月):Git 2.6+(2015 年第 3 季度)将允许显式指定 SSL 版本:

http:添加对指定SSL版本的支持

See commit 01861cb (14 Aug 2015) by Elia Pinto (devzero2000).
Helped-by: Eric Sunshine (sunshineco).
(Merged by Junio C Hamano -- gitster -- in commit ed070a4, 26 Aug 2015)

http.sslVersion

如果您想强制使用默认值,则在协商 SSL 连接时要使用的 SSL 版本。
可用和默认版本取决于 libcurl 是针对 NSS 还是 OpenSSL 构建以及所使用的加密库的特定配置。在内部这设置了 'CURLOPT_SSL_VERSION' 选项;有关此选项格式和支持的 ssl 版本的更多详细信息,请参阅 libcurl 文档。
实际上该选项的可能值是:

  • sslv2
  • sslv3
  • tlsv1
  • tlsv1.0
  • tlsv1.1
  • tlsv1.2

可以被 ' 覆盖GIT_SSL_VERSION' 环境变量。
强制 git 使用 libcurl 的默认 ssl 版本并忽略任何显式http.sslversion选项,将 'GIT_SSL_VERSION' 设置为空字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接中出现未知的 SSL 协议错误 的相关文章

  • git 日志历史记录图,每次提交一行,彩色,带有日期

    我需要的格式如下 git log decorate graph oneline date order 但我也需要它 包含日期 短 具有相同的颜色 I tried git log decorate graph oneline date ord
  • Git 将一个分支合并到所有其他分支中

    我知道这个问题已经在这里被问过 https stackoverflow com questions 2329716 merging changes from master into all branches using git https
  • 当当前分支上有未提交的更改时签出另一个分支

    大多数时候 当我尝试签出另一个现有分支时 如果我在当前分支上有一些未提交的更改 Git 会不允许我这样做 所以我必须首先提交或隐藏这些更改 然而 有时 Git 确实允许我在不提交或存储这些更改的情况下签出另一个分支 并且它会将这些更改携带到
  • 如何使用 Git 跟踪目录而不是文件?

    我最近开始使用 Git 但只有一件事遇到了麻烦 如何在不跟踪目录内容的情况下跟踪目录 例如 我正在开发的网站允许上传 我想跟踪上传目录 以便在分支等时创建它 但显然不是其中的文件 在开发分支中的测试文件或主控中的真实文件 在我的 gitig
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • Perl LWP GET 或 POST 到 SNI SSL URL

    我有一个使用 perl LWP 向客户发送数据的系统 他们可以选择 URL 以及是 POST 还是 GET 一位新客户最近抱怨该服务不起作用 他们怀疑这是因为他们的端点使用了 SNI SSL 查看日志 我看到的只是错误消息 证书验证失败 5
  • Git 更改丢失 - 为什么?

    我们的开发团队正在使用 git 最近我们至少两次丢失了文件更改 我们正在使用私人 Github 存储库 在当前情况下 我们可以返回 Github 上的日志并查看我对文件所做的一些更新 后来 另一位团队成员更改了文件的不同部分 它似乎破坏了我
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • Azure 共享计划上的 SSL?

    我有 1 个网站 1 个数据库和 1 个 SSL 托管在 azure 上 我曾经拥有 基本 托管套餐 但每个月要支付 70 美元才能获得基本设置 并且所有内容都具有最小的缩放比例 我意识到我的低流量站点不需要专用计算机 因此我尝试转向共享计
  • 将更改从一个分支复制到另一个分支

    我有一个分支名为BranchA from master 我有一些改变BranchA 我不会合并来自BranchA to master 现在我创建了另一个分支master named BranchB 我如何复制更改BranchA to Bra
  • 握手失败(40) 和 TLS_EMPTY_RENEGOTIATION_INFO_SCSV

    安装在 jBOSS 上的客户端正在尝试访问在 DataPower 上配置的安全网站xi50v6 0 0 2器具 SSL 握手时连接失败 我在 DataPower 上进行了数据包捕获 发现 SSL 握手失败 并显示以下错误 Descripti
  • 使用 DigitalOcean 在 Kubernetes 集群上为我的 Nginx-Ingress 生成通配符证书

    我遵循了这个 DigitalOcean 指南https www digitalocean com community tutorials how to set up an nginx ingress with cert manager on
  • Eclipse Git 关键字扩展

    每次我检查 git hub 服务器的源代码时 我都需要更新源代码修订关键字 version date 等 你可能知道 Git 中的主要问题是你无法使用以下命令修改文件 提交后有关提交的信息 因为 Git 首先对文件进行校验 基本上我想要实现
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • Gerrit 和 Active Directory

    我正在尝试设置 Gerrit 以使用我们的公司 Active Directory 进行身份验证 我知道很多人都设法让它发挥作用 但它对我来说不起作用 如果我运行一个ldapsearch命令如下我得到了正确的结果 所以我知道我的搜索字符串是正
  • MSysGit 与 Windows 版 Git

    我无法确定MSysGit 和 Windows 版 Git 之间的区别 http msysgit github com 它们有何不同 为什么我会选择其中之一而不是另一个 它们不是同一个东西吗 On http msysgit github co
  • 是否可以检测 http git 远程是智能还是愚蠢?

    我正在我的应用程序中实现一个选项来使用 depth 1制作 git repo 的最小功能克隆 我刚刚意识到愚蠢的 http 传输不支持 depth 我想自动检测 http 远程是愚蠢的还是聪明的 这样我就可以省略 depth与哑 http
  • GIT:提交时“致命:无法写入 new_index 文件”

    当我尝试将更改提交到本地存储库时 我收到以下消息 致命 无法写入 new index 文件 As this 线程说明 http luhman org blog 2010 04 05 git fatal unable write newind
  • 如何创建名称中带有正斜杠的标签

    当我已经有了类似的标签时 有什么方法可以创建名称中带有正斜杠的 git 标签吗 假设我有 1 16 0 标签 并且我想创建 1 16 0 1 0 0 标签 git tag 1 16 0 1 0 0 error refs tags 1 16

随机推荐