web-dev-qa-db-ja.com

Maven Centralから「Received fatal alert:protocol_version」または「peer not authenticated」と表示されるのはなぜですか?

Maven Centralに接続すると、以下のエラーが表示されます/ https://repo1.maven.org 2018年6月18日以降。

Received fatal alert: protocol_version

または

Received fatal alert: peer not authenticated
98
Brian Fox

それは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

Java 7のバージョンを更新する

また、問題はJava 7バージョンを更新することで解決できます。しかし、最後の利用可能なバージョン(7u80)は問題を解決しません。 Oracle Advanced Support(以前のJava for Business)で提供されているアップデートを使用する必要があります。

111
v.ladynev

2018年6月、セキュリティを強化し、現代の標準に準拠するために、安全でないTLS 1.0および1.1プロトコルは、CentralへのSSL接続ではサポートされなくなります。これは、httpsを使用してCentralにアクセスしているJava 6(およびJava 7)のユーザーにのみ影響するはずです。これは、メトリックではユーザーの0.2%未満です。

詳細と回避策については、こちらのブログとFAQを参照してください。 https://blog.sonatype.com/enhance-ssl-security-and-http/2-support-for-central

59
Brian Fox

次のコマンドは役に立ちました(mvnを実行する前にbashで実行しています)

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
35

@ v.ladynevと同じように、JDK 1.7で動作します。

Eclipseでは、TLSコマンドラインパラメータで "Run As" maven installを実行できるようにするには、使用しているJDKを設定するだけです。

ウィンドウ>設定>Java> _からダイアログを開きます。インストール済みのJRE

次に、使用しているものをハイライトし( _ jdk _ ではなく _ jre _ にします)、編集。 "Default VM arguments"フィールドに、値-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2を入力します。以下に示すように:

enter image description here

プロジェクトをクリーンにして(おそらくオプション)、maven installを再実行してください。

11
Amessihel

すみません、なぜエラーメッセージが出るのかわかりません。しかし、私はJava 7とWindows 10を使っていて、私のための解決策はJava_HOME環境変数を変更することによって一時的にJava 8を使うことでした。それからmvn installを実行してMaven Central Repositoryから取得することができます。

5
propatience

IBM JDKを使用している場合は、設定も必要になることがあります。

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

0
Edoardo Comar