当前位置: 首页 > 知识库问答 >
问题:

在新的OS X安装上安装Homebrew时出现问题(SSL错误)

端木冷勋
2023-03-14
fatal: unable to access 'https://github.com/Homebrew/homebrew/': Unknown SSL protocol error in connection to github.com:-9847
Failed during: git fetch origin master:refs/remotes/origin/master -n --depth=1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

有人知道这里出了什么问题吗?“xcode-select-install”也已运行。

编辑:按照下面的建议,我将用tcpdump打包的文件转储到一个pcap文件,并用tshark打开该文件。由此我得到:

1 0.000000 MY_IP_REMOVED->192.30.252.130 TCP 78 494 51 443[SYN]SEQ=0 Win=65535 LEN=0 MSS=1460 WS=32 TSVAL=170479114 TSECR=0 SAK_PERM=1

5 0.150913 192.30.252.130->MY_IP_REMODED SSL 1158连续数据[以太网帧检查序列不正确]
6 0.150916 192.30.252.130->81.26.52.196 TCP 64 443 49451[FIN,ACK]SEQ=1101 ACK=190 Win=4237312 LEN=0[以太网帧检查序列不正确]

7 0.150961 MY_IP_REMODED->192.30.252.130 TCP 66 494 51 443[ACK]SEQ=190 ACK=1101 Win=131328 LEN=0 TSVAL=170479257 TSECR=2830778812

8 0.150990 MY_IP_REMODED->192.30.252.130 TCP 66 494 51 443[ACK]SEQ=190 ACK=1102 Win=131328 LEN=0 TSVAL=170479257 TSECR=2830778812

9 0.151046 MY_IP_REMOVED->192.30.252.130 TCP 66 494 51 443[FIN,ACK]SEQ=190 ACK=1102 Win=132416 LEN=0 TSVAL=170479257 TSECR=2830778812

10 0.151156 192.30.252.130->MY_IP_REMOVED TCP 64 443 49451[RST]SEQ=1102 Win=4237312 LEN=0[以太网帧检查序列不正确]

共有1个答案

燕正卿
2023-03-14

如果这是一个OS X的干净安装,我怀疑问题可能是一个罕见的问题(bug?)在securetransport中,它可能由到GitHub的路由中的某个位置的代理或防火墙设置触发。

您的libcurl是根据security.framework编译的。错误代码-9847表示记录溢出:

A record overflow occurred.
Value
–9847
Description
A record overflow occurred.
Available in OS X v10.3 and later.

错误可能是TLS1Callouts.c中的这一行。客户端似乎收到了一条长度意外的记录。

您可以尝试使用tcpdump/wireshark(用接口名替换en0):

$ sudo tcpdump -i en0 —n -s 0  -B 524288 -w test.pcap  port 443

在Wireshark中查看pcap文件(或直接在Wireshark中捕获),以获得每个阶段的详细信息。www.sans.org上有关于SSL/TLS的很好的解释。相比较而言,我的(成功的)对话是这样的:

$ tshark -r test.pcap
  1   0.000000   10.0.0.125 -> 192.30.252.129 TCP 78 51229→443 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=32 TSval=235773429 TSecr=0 SACK_PERM=1
  2   0.133049 192.30.252.129 -> 10.0.0.125   TCP 74 443→51229 [SYN, ACK] Seq=0 Ack=1 Win=14240 Len=0 MSS=1460 SACK_PERM=1 TSval=1851779047 TSecr=235773429 WS=1024
  3   0.133148   10.0.0.125 -> 192.30.252.129 TCP 66 51229→443 [ACK] Seq=1 Ack=1 Win=131744 Len=0 TSval=235773562 TSecr=1851779047
  4   0.138296   10.0.0.125 -> 192.30.252.129 SSL 255 Client Hello
  5   0.278168 192.30.252.129 -> 10.0.0.125   TLSv1.2 1490 Server Hello
  6   0.278567 192.30.252.129 -> 10.0.0.125   TLSv1.2 1490 Certificate
  7   0.278696   10.0.0.125 -> 192.30.252.129 TCP 66 51229→443 [ACK] Seq=190 Ack=2849 Win=129632 Len=0 TSval=235773707 TSecr=1851779083
  8   0.278910 192.30.252.129 -> 10.0.0.125   TLSv1.2 399 Server Key Exchange
  9   0.278991   10.0.0.125 -> 192.30.252.129 TCP 66 51229→443 [ACK] Seq=190 Ack=3182 Win=130720 Len=0 TSval=235773707 TSecr=1851779083
 10   0.339768   10.0.0.125 -> 192.30.252.129 TLSv1.2 141 Client Key Exchange
 11   0.551009 192.30.252.129 -> 10.0.0.125   TCP 66 443→51229 [ACK] Seq=3182 Ack=265 Win=15360 Len=0 TSval=1851779144 TSecr=235773767
 12   0.551185   10.0.0.125 -> 192.30.252.129 TLSv1.2 157 Change Cipher Spec, Encrypted Handshake Message
 13   0.688512 192.30.252.129 -> 10.0.0.125   TCP 66 443→51229 [ACK] Seq=3182 Ack=356 Win=15360 Len=0 TSval=1851779186 TSecr=235773977
 14   0.691643 192.30.252.129 -> 10.0.0.125   TLSv1.2 157 Change Cipher Spec, Encrypted Handshake Message
 15   0.691720   10.0.0.125 -> 192.30.252.129 TCP 66 51229→443 [ACK] Seq=356 Ack=3273 Win=130976 Len=0 TSval=235774117 TSecr=1851779186
 16   0.692351   10.0.0.125 -> 192.30.252.129 TLSv1.2 215 Application Data

如果真是这样,您的一个解决办法可能是编译带有OpenSSL支持的自定义libcurl并使git使用新的libcurl。或者,您可以使用ssh而不是https连接到github(如果您在github注册了公钥)。

 类似资料:
  • 我一直在努力尝试,但我无法克服这个错误。我有Ruby版本1.8.7和Gem版本2.1.11,我试图安装open project,但我总是遇到这个错误 安装json(1.8.1)gem::installer::extensionbuilderror:错误:未能构建gem本机扩展。 迈克 安装json(1.8.1)时出错,Bundler无法继续。在绑定之前,请确保成功。==>出错:(==>安装中止。

  • 因此,即使成功地安装了pysqlcipher3,它也没有成功。 根据我的研究,这似乎是Windows用户试图安装Sqlcipher的常见问题。 尝试#1 首先,我尝试从github下载pysqlcipher3,并通过cmd手动构建和安装它(使用和)。 在执行Python3setup.py构建时,我有一些错误(缺少几个需求,没有OPENSSL_CONF环境变量等)。),但我修复了其中的大部分。 但是

  • PHP版本:7.2.19-0ubuntu0.18.04.1 phpMyAdmin 4.6.6 在安装Phpmyadmin时,打开它时出现两个错误。一个在导入下,一个在导出下!这是因为mysql服务器出错还是因为phpmyadmin中的错误?我该如何处理它呢? 我在Debian9上安装了它,没有问题! 出口项下: ./libraries/plugin_interface.lib.php#551 co

  • 我试图在Windows上安装Antlr 4.4,目的是使用pyfuzzy,这是一个模糊逻辑的Python库,它依赖于Antlr的Python运行时来运行。我曾尝试(天真地)在不安装Antlr的情况下获得Python (2.7)的Antlr运行时,当然这并不成功。 因此,我尝试按照Windows的说明安装Antlr,但每次运行时都会出现错误: antlr .jar文件位于 C:\JavaLib 中,

  • 当我试图从PHP7.2.X版本加载mcrypt扩展模块时。 因此我尝试使用与当前PHP版本兼容的PECL库,以便安装并遵循以下链接:在安装期间在PHP7.2上安装mcrypt! 以下是在终端上执行某些命令后获得的结果。 因为我得到的错误类型是pecl7.2-sp:command not found 从留档部分可以清楚地看到,它已经被弃用了,从安全的角度来看,它将不再可用——从那以后,从PHP 7.