我正在使用Java中的RestAssured尝试向网页发出get请求但由于SSL问题我没有成功。一些搜索让我尝试使用'useRelaxedHTTPSValidation()',但我没有运气。
我得到的例外是:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
以下是我正在尝试做的基础知识:
RestAssured.baseURI = "HTTPSWebsite";
RestAssured.useRelaxedHTTPSValidation();
// RestAssured.useRelaxedHTTPSValidation("TLS"); // Also tried this
given()
.log().all()
.when()
.get()
.then()
.log().all();
如果我在firefox中访问网站,我会看到: SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED
在chrome中我看到: 站点的证书链存在问题(net :: ERR_CERT_COMMON_NAME_INVALID)。
如果我拿出'useRelaxeHTTPSValidation()' 我收到了错误
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
任何建议都会很棒。
答案 0 :(得分:0)
所以我无法找到如何直接使该功能工作,但我发现添加以下两行改变了安全设置以允许所有算法。从那里一切都运作起来。
Security.setProperty("jdk.tls.disabledAlgorithms","");
Security.setProperty("jdk.certpath.disabledAlgorithms","");