【问题标题】:Received fatal alert: bad_certificate RestAssured收到致命警报:bad_certificate RestAssured
【发布时间】:2015-10-06 12:39:54
【问题描述】:

我正在使用 RestAssured 库来调用某些 REST API

这些是 https 端点,我尝试使用 RestAssured 中提供的“relaxedHTTPSValidation()”方法绕过 SSL 验证

我的请求看起来像

RequestSpecification req = RestAssured.given().relaxedHTTPSValidation().body().post(); 

我不断收到错误

javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
    at    sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)

有人知道为什么会这样吗?

【问题讨论】:

  • 您的网址是否公开以便我试用?
  • 另一种方法是将主机名的证书添加到信任库.. cacerts 或 jssecerts。
  • 可能有很多原因 - 如果有帮助,请查看此链接 *.com/questions/30350120/…
  • 可能有很多原因。如果有帮助,请查看下面的链接*.com/questions/30350120/…

标签: rest-assured


【解决方案1】:

您使用的是哪个版本?我们之前在早期版本中遇到过同样的问题。更新到最新版本后问题解决了。

【讨论】:

    【解决方案2】:
    1. 客户端和服务器未同步相同的 java 版本。
    2. 不同版本的 SSL 和 TLS v1 的兼容性问题,因为客户端仅使用 SSL v3 进行处理。

    【讨论】: