github不支持tls1.1导致egit cannot open git-upload-pack

 

【前言】

本文可以当小说看,悬疑小说。

 

【起因】

过年后开始上班,大概是2.22开始上班,到昨天2.25发现问题,

myeclipse的egit不能clone和pull github上的项目了。

报错信息cannot open git-upload-pack,

2.25的时候公司网络打开github有点慢,

以为是公司网络问题,就没关注,

今天2.26试了一下,还是不行,就头大了。

 

【http.sslVerify false?太天真】

这个问题以前也遇到过,百度一下,结果一大堆,

都是告你在myeclipse-window-preferences-team-git-configuration中

add entry,设置key为http.sslVerify,值为false,apply,ok,

如果你认为这样就对了,那就很傻很天真。

 

 

【凭经验各种尝试】

首先想到的还是上面说的sslVerify的问题,

仔细校对了一下,没有拼写错误,

然后有想到是不是repo settings的问题,

也就是项目的git config没有被系统覆盖,

修改repo settings,也添加了sslVerify false,

还是不行。

 

 

接着想到是不是egit的问题,

看了一下环境配置,

jdk1.6,myeclipse10.6,egit2.3.1,

好像是有点旧,

查到egit最新版本是4.10,

百度了下没有直接能安装的jar,dropins的方式,

所以只能通过myeclipse自带的难用的eclipse marketplace安装,

难用在访问很慢,不管有没有翻墙都是很慢,坑爹,

等待了好半天说是文件缺失,缺失你妹啊~

后来又百度到myeclipse10.6对应的eclipse支持的egit就是2.3.1,

行,白忙活了,抓狂。

 

 

【冷静的分析】

2.25发现不能用的时候,有尝试公司的gitlab项目,还有国内的gitosc项目,

这些项目都正常,就是github上的不正常,当时没注意。

上面尝试过一遍后发现,不对,要冷静,

就冷静的想了下,发现只是github项目不行,myeclipse和egit都正常,

这个时候就要去找github的问题了。

 

查看了报错信息,之前只是看到cannot open git-upload-pack就没往下了,

这次看了下详细信息,如下,发现具体错误是javax.net.ssl.SSLException: Received fatal alert: protocol_version,

虽然英语不是很好,但大概能理解到是ssl协议的版本不对。

找到问题了,开始解决问题。

 

 

【嫌疑人tls1.2】

然后开始google各种查,

egit protocol version

myeclipse protocol version

eclipse protocol version

等等,

没有找到直接的答案,但是发现在java编码中也会有protocol version这个问题,

答案是jdk1.6不支持tls1.2,不过可以通过编码引入其他库的方式弥补,

但是,myeclipse egit怎么通过编码的方式弥补,抓狂,

 

然后开始查jdk1.6 tls1.2,jdk1.7 tls1.2等

发现只有jdk1.8是支持tls1.2的,其他不支持

 

【换个jdk1.8?太天真】

由于本地是jdk1.7,myeclipse编译还是使用的1.6,

所以需要下载一个jdk1.8,然后开始下载,修改path等,

最后把myeclipse的jre修改为1.8的,

 

在看了下报错信息,发现答应的还是jdk1.6,

原来修改myeclipse的jre为1.8,只是修改了myeclipse中java项目的编译环境,

不是myeclipse自己启动用的jre,

然后各种查,怎么替换myeclipse自己的jdk,

给出的答案都是编译jre的替换方法,抓狂,只能自己搞。

 

【替换myeclipse自己的jdk】

在myeclipse文件夹下发现一个jdk,C:\_programfiles\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013,

这个是1.6的 ,是不是用的这个呢,

关闭myeclipse,修改文件夹为0131,然后再启动myeclipse,

bingo,报错了,并且很明显的指向,myeclipse就是用的这个jdk中的javaw启动的,

 

 

那么怎么修改呢,找吧,在myeclipse文件夹下找了一圈,

发现C:\_programfiles\MyEclipse\MyEclipse 10\myeclipse.ini中有该jdk地址,

修改把,指向到本地的jdk1.8,

 

然而,还是太年轻,依旧报错

 

这次都不给直接提示了,让你去看日志,

看完日志发现,找不到该id,

 

 

继续找吧,找到C:\_programfiles\MyEclipse\Common\artifacts.xml中的jdk,发现不好改,放弃。

 

换个思路,把myeclipse的jdk1.6文件夹的所有文件替换为本地jdk1.8中的文件,最终证明还是不行。。。

 

【归纳,总结一下】

1.不是egit或者eclipse,myeclipse的问题

2.不是sslVerify的问题

3.myeclipse自带的jdk1.6不支持tls1.2,且暂时没办法替换

 

之前一直是搜索egit+protocol,现在发现是github的问题,

那就搜索一下github+protocol

 

【真凶,github不支持tls1.1】

如上,果然搜索到了,http://blog.csdn.net/virusnono/article/details/79361870

 

原来是github搞的鬼,晕死,

文中说是2.1发公告,去看了一下,应该是2.8号之后生效,

地址:https://githubengineering.com/crypto-removal-notice/

 

关键点

1.2.8日后禁止了tls1.1

 

2.造成的影响,很多东西不能用了

git windows版本低于1.14.0的,

java版本低于jdk8的,

visual studio等等

 

 

【总结】

1.是github不支持tls1.1导致

2.就myeclipse+egit来说,只能升级为myeclipse2017,自带的是jdk8的版本

3.或者替换为ssh的方式?

 

所以说,程序员的时间都去哪了~
 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uikoo9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值