2018年6月18日之后连接Maven Central / https://repo1.maven.org时出现以下错误。
Received fatal alert: protocol_version
要么
Received fatal alert: peer not authenticated
2018年6月18日之后连接Maven Central / https://repo1.maven.org时出现以下错误。
Received fatal alert: protocol_version
要么
Received fatal alert: peer not authenticated
Answers:
解决方案1:配置Java 7
需要在命令行中使用Java属性启用TLS 1.2协议
mvn -Dhttps.protocols=TLSv1.2 install
install
只是目标的一个例子
相同的错误ant
可以通过这种方式解决
java -Dhttps.protocols=TLSv1.2 -cp %ANT_HOME%/lib/ant-launcher.jar org.apache.tools.ant.launch.Launcher
解决方案2:将Java 7与Oracle Advanced Support一起使用
通过更新Java 7版本也可以解决问题。但是最后一个可用的版本(7u80
)不能解决问题。需要使用Oracle Advanced Support(以前称为Java for Business)提供的更新。
解决方案3:改为使用Java 8
配置$JAVA_HOME
为指向Java 8。
sbt -Dhttps.protocols=TLSv1.2 instal
但它不起作用
-Dhttps.protocols=TLSv1.2
。因此,您需要找到如何在SBT中传递Java参数。
在2018年6月,为了提高安全性并符合现代标准,到Central的SSL连接将不再支持不安全的TLS 1.0和1.1协议。这只会影响使用HTTPS访问Central的Java 6(和Java 7)用户,根据我们的指标,该用户不到0.2%的用户。
有关更多详细信息和解决方法,请参见此处的博客和常见问题解答:https : //blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central
以下命令对我有帮助(在运行mvn之前在bash上执行)
export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
如@ v.ladynev所述,它可与JDK 1.7一起使用
使用Eclipse,要能够maven install
使用TLS命令行参数执行“运行方式” ,只需配置您正在使用的JDK。
通过窗口 > 首选项 > Java > 已安装的JRE打开对话框。
然后突出显示您正在使用的(应该是JDK而不是JRE),单击Edit。在“默认VM参数”字段中,填写值-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
。如下所示:
清理项目(可能是可选项目),然后重新运行maven install
。
请注意,如果您使用的是IBM JDK,则可能还需要设置
com.ibm.jsse2.overrideDefaultTLS=true
使用jdk7-u221,我需要安装Java密码扩展(JCE)