【问题标题】:"Received fatal alert: bad_record_mac" when deploying to sonatype部署到 sonatype 时“收到致命警报:bad_record_mac”
【发布时间】:2012-09-29 01:17:39
【问题描述】:

我在尝试部署到 sonatype 存储库时收到此堆栈跟踪(有时!):

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)

按照here的建议,我设置了这个:

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)

有什么想法吗?

ps。我在jdk7-dev mailing list 提出了同样的问题,但还没有得到任何有用的答案。

【问题讨论】:

  • 在 sun jdk-64b 7u7 和 7u9 上也会发生同样的事情(有时!)
  • 上传的某些部分在此处相同(JDK 7u9,Maven 3.0.4)。
  • 我认为可能的原因是以下 Java 错误:bugs.openjdk.java.net/browse/JDK-4615819(它已有十年历史,但从未在客户端修复)

标签: java maven ssl sonatype


【解决方案1】:

如果 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 中的 bug 更多,我只是碰到了一个在 3.0.4 中修复的问题,所以要小心。

【讨论】:

  • 对我来说,最后一个选项仅与第一个选项一起对 JDK 1.5 环境有帮助。
【解决方案2】:

我有 maven 多模块项目 (jodd.org),由于这个错误,我无法在过去 5 小时内将所有工件上传到 Sonatype。我在 Windows 7 上使用 JDK-64b 7u7 和 7u9。

Here 有人说这是JDK 7u7 的问题;但是,升级到 7u9 对我没有帮助。

最后我能够使用 JDK 6 成功上传所有工件。

但是,由于此错误是随机出现的,我不能 100% 确定这只是巧合,或者它确实在 JDK6 上运行得更好。

【讨论】:

  • Java 6 的运气也比 7 好。(使用 Ubuntu 12.04 32 位。)
【解决方案3】:

此处记录了一种可能的解决方法:https://jira.codehaus.org/browse/MNG-5237

【讨论】:

  • 使用wagon-http-lightweight 没有帮助,sun.security.ssl... 的同样例外
【解决方案4】:

再试一次,自 2013 年 1 月 19 日以来,Sonatype OSS 配置已进行了调整,这可能解决了此问题。

参考:https://issues.sonatype.org/browse/OSSRH-5165

【讨论】:

    【解决方案5】:
    【解决方案6】:

    我在使用 Maven 3.0.5 时遇到了这个 SSL 错误,但当我升级到 3.1.0 时,它似乎已修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 2023-04-07
      • 1970-01-01
      • 2015-10-06
      • 2015-12-04
      相关资源
      最近更新 更多