问题
I'm getting the below errors when connecting to Maven Central / https://repo1.maven.org after June 18th 2018.
Received fatal alert: protocol_version
or
Received fatal alert: peer not authenticated
回答1:
Solution 1: configure Java 7
It is need to enable TLS 1.2 protocol with Java property in the command line
mvn -Dhttps.protocols=TLSv1.2 install
install
is just an example of a goal
The same error for ant
can be solved by this way
java -Dhttps.protocols=TLSv1.2 -cp %ANT_HOME%/lib/ant-launcher.jar org.apache.tools.ant.launch.Launcher
Solution 2: use Java 7 with Oracle Advanced Support
Also problem can be solved by updating the Java 7 version. But the last available version (7u80
) doesn't fix the problem. It is need to use an update provided with Oracle Advanced Support (formerly known as Java for Business).
Solution 3: use Java 8 instead
Configure $JAVA_HOME
to point to Java 8.
回答2:
In June 2018, in an effort to raise security and comply with modern standards, the insecure TLS 1.0 & 1.1 protocols will no longer be supported for SSL connections to Central. This should only affect users of Java 6 (and Java 7) that are also using https to access central, which by our metrics is less than .2% of users.
For more details and workarounds, see the blog and faq here: https://blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central
回答3:
The following command helped me (executing on bash before running mvn)
export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
回答4:
As said @v.ladynev, it works with JDK 1.7
With Eclipse, to be able to perform a "Run As" maven install
with the TLS command-line parameter, just configure the JDK you're using.
Open the dialog through Window > Preferences > Java > Installed JREs.
Then highlight the one you're using (should be a JDK, not a JRE), click on Edit. In the field "Default VM arguments", fill the value -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
. As shown below:
Clean the project (maybe optional), then re-run a maven install
.
回答5:
I'm sorry, I don't know why you get the error message. However, I'm using Java 7 and Windows 10 and the solution for me was to temporarily use Java 8 by changing the JAVA_HOME
environment variable. Then I could run mvn install
and fetch from Maven Central Repository.
回答6:
Note that if you're using the IBM JDK you may also have to set
com.ibm.jsse2.overrideDefaultTLS=true
https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls
回答7:
Using jdk7-u221, I was need to install the Java Cryptography Extension (JCE)
Java Cryptography Extension JCE
来源:https://stackoverflow.com/questions/50824789/why-am-i-getting-received-fatal-alert-protocol-version-or-peer-not-authentic