我有一个服务,可以公开我要测试的API。 我正在本地主机上运行该服务,它具有自签名证书。
我将.p12文件添加到测试/资源以及@BeforeAll
上:
RestAssured
.config()
.sslConfig(
new SSLConfig().with().trustStoreType("PKCS12").and().relaxedHTTPSValidation().and()
.trustStore(ResourceUtils.getFile("classpath:cert.p12"), "mypassword"));
还添加了此内容:
RestAssured.config()。sslConfig(SSLConfig.sslConfig()。allowAllHostnames());
尽管出现以下错误:
javax.net.ssl.SSLPeerUnverifiedException:对等方未通过身份验证
为什么?
更新:
在运行时,我看到RestAssured.config().getSSLConfig().getTrustStore()
是null
,但是如何?
更新2:我不介意REST保证会信任所有证书(安全性不是问题)
答案 0 :(得分:0)
通过添加relaxedHTTPSValidation()
来解决它(某种):
RestAssured.given().relaxedHTTPSValidation()
缺点:每个HTTP调用都必须这样做。