"Получено смертельное предупреждение: bad_record_mac" при развертывании в сонатипе

Я получаю эту стекю при попытке развернуть в репозиторий сонаты (иногда!):

javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1977)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1093)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:131)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:151)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:114)
at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon$RequestEntityImplementation.writeTo(AbstractHttpClientWagon.java:188)
at org.apache.maven.wagon.providers.http.httpclient.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:96)
at org.apache.maven.wagon.providers.http.httpclient.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108)
at org.apache.maven.wagon.providers.http.httpclient.impl.entity.EntitySerializer.serialize(EntitySerializer.java:120)
at org.apache.maven.wagon.providers.http.httpclient.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:263)
at org.apache.maven.wagon.providers.http.httpclient.impl.conn.AbstractClientConnAdapter.sendRequestEntity(AbstractClientConnAdapter.java:227)
at org.apache.maven.wagon.providers.http.httpclient.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:255)
at org.apache.maven.wagon.providers.http.httpclient.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
at org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)
at org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)
at org.apache.maven.wagon.providers.http.httpclient.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.maven.wagon.providers.http.httpclient.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.execute(AbstractHttpClientWagon.java:674)
at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:515)

Как было предложено здесь, я установил это:

MAVEN_OPTS="-Dhttps.protocols=SSLv3 -Dforce.http.jre.executor=true"

И это все равно не помогает. Я использую:

$ java -version
java version "1.7.0_07"
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)

Любые идеи?

пс. Я задал тот же вопрос в рассылке jdk7-dev, но пока не получил полезного ответа.

Ответ 1

Попробуйте еще раз, с 19 января 2013 года настроена конфигурация OOS Sonatype, которая потенциально разрешила эту проблему.

Ссылка: https://issues.sonatype.org/browse/OSSRH-5165

Ответ 2

Если проблема связана с SSLv3, решение должно перейти на Maven 3.0.3 и использовать предложенные варианты Maven.

MAVEN_OPTS="-Dhttps.protocols=SSLv3 -Dforce.http.jre.executor=true"

Исправление SSLv3, которое вы пробовали, не будет работать в Maven 3.0.4. Я опубликовал отчет об ошибке, описывающий, почему здесь: Maven JIRA ticket MNG-5363

После некоторого поиска я не могу понять, что -Dforce.http.jre.executor = true пытается исправить, поэтому я не думаю, что вам это нужно, но тот, кто предположил, вероятно, сделал это по уважительной причине.

Наш отдел только что диагностировал эти проблемы несколько недель назад. Если вы столкнулись с ошибкой из-за SSLv3, я бы ожидал, что она будет более последовательной, как я заметил с нашими серверами. Возможно, иногда в вашем случае делается другой выбор SSL, но это также кажется странным.

Наконец, в 3.0.3 больше ошибок, и я просто ударил один из них, исправленный в 3.0.4, поэтому будьте осторожны.

Ответ 3

У меня есть мультимодульный проект maven (jodd.org), и из-за этой ошибки я не смог загрузить все артефакты в Sonatype за последние 5 часов. Я использую JDK-64b 7u7 и 7u9 в Windows 7.

Здесь кто-то говорит, что это проблема в JDK 7u7; однако, обновление до 7u9 не помогло мне.

Наконец, я смог загрузить все артефакты с помощью JDK 6.

Однако, поскольку эта ошибка появляется случайным образом, я не могу быть на 100% уверен, что это просто совпадение, или это действительно лучше работает на JDK6.

Ответ 6

Я столкнулся с этой ошибкой SSL с Maven 3.0.5, но когда я обновил до 3.1.0, он оказался исправленным.