Maven Centralから「Received fatal alert:protocol_version」または「peer not authentication」を受け取るのはなぜですか?


回答:


188

解決策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:Oracle Advanced SupportでJava 7を使用する

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

解決策3:代わりにJava 8を使用する

$JAVA_HOMEJava 8を指すように構成します。


ここで1日節約しました!
Herve Mutombo、

私が試しsbt -Dhttps.protocols=TLSv1.2 instalたSBTの同等のものを教えていただけますか?それは機能しません
G.Saleh

@ G.Salehこのパラメーターをjavaに渡す方法が必要-Dhttps.protocols=TLSv1.2です。したがって、SBTでJavaパラメータを渡す方法を見つける必要があります。
v.ladynev

67

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

詳細と回避策については、こちらのブログとよくある質問をご覧くださいhttps : //blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central


blog.sonatype.com記事のリンクが404をスローしています。これは、central.sonatype.org / articles / 2018 / May / 04 /…へのリンクが更新されたためです
Blueboye

50

次のコマンドは私を助けました(mvnを実行する前にbashで実行しました)

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

3
WindowsではMAVEN_OPTS = -Dhttps.protocols = TLSv1、TLSv1.1、TLSv1.2
Lele

これを設定した後、すべてのhttpダウンロードが機能します。ただし、httpsには次のような問題がありますorg.apache.hadoop:hadoop-core:jar:0.20.2-cdh3u4の記述子:アーティファクトorg.apache.hadoop:hadoop-core:pom:0.20.2-cdh3u4をcloudera(repository.cloudera。 com / artifactory / cloudera-repos):致命的なアラートを受け取りました:handshake_failure any help
Karn_way

1
魅力的な作品!ありがとう!(CentOで試した)
DarSta

これは安全ですか?
Ganesh Satpute

ありがとうございました!これでうまくいきました!
ベン・コール

17

@ v.ladynevで述べたように、JDK 1.7で動作します

Eclipseではmaven install、TLSコマンドラインパラメーターを使用して「別のユーザーとして実行」を実行できるようにするために、使用しているJDKを構成するだけです。

[ ウィンドウ] > [ 設定] > [ Java ] > [ インストールされたJRE ]からダイアログを開きます。

次に、使用しているもの(JREではなくJDKである必要があります)を強調表示し、[ 編集 ]をクリックします。「デフォルトVM引数」フィールドに値を入力します。以下に示すように:-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2

ここに画像の説明を入力してください

プロジェクトをクリーンアップし(場合によってはオプション)、を再実行しmaven installます。


org.netpreserve.commons:webarchive-commons:jar:1.1.2-> org.apache.hadoop:hadoop-core:jar:0.20.2-cdh3u4で依存関係を収集できませんでした。 org.apache.hadoop:hadoop-core:jar:0.20.2-cdh3u4:アーティファクトorg.apache.hadoop:hadoop-core:pom:0.20.2-cdh3u4をcloudera(repository.cloudera.com/アーティファクト/ cloudera-repos):致命的なアラートを受け取りました:handshake_failureがhttpsダウンロードに問題があるようです。私がjava1.7_80とmaven 3.6を使用しているのを助けてください
Karn_way


6

申し訳ありませんが、なぜエラーメッセージが表示されるのかわかりません。ただし、私はJava 7とWindows 10を使用しており、解決策は、JAVA_HOME環境変数を変更してJava 8を一時的に使用することでした。次にmvn install、Maven Central Repositoryを実行してフェッチできます。


2
これは私にとって不思議に働きました。MyEclipseのユーザーとして私がしなければならなかったのは、Maven実行構成のJREを1.8に変更し、Mavenが必要なものをダウンロードした後、1.7に戻すことだけでした。
トールホブデン



0

WindowsアプリサーバーでJavaプロパティを設定する場合:

  • tomcatの構成>管理者として実行
  • 次に、Java optsを追加します。

  • サービスを再起動します。


-Dhttps.protocols = TLSv1が、TLSv1.1、TLSv1.2
ドン・フリオ

&-Djdk.tls.client.protocols = TLSv1が、TLSv1.1、TLSv1.2
ドン・フリオ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.