Я хотел бы написать интеграционные тесты для моего шлюза с взаимной аутентификацией: требуется сертификат клиента и сервера.
с помощью curl. Я могу вызвать конечную точку следующим образом:
curl -k --cert myCert.pem:changeit https:/localhost:9999/home -vv
и он отлично работает.
Я хотел бы использовать уверенность, чтобы написать какой-то интеграционный тест.Когда я пишу их с такой конфигурацией:
RestAssured.keyStore(keystore, "changeit");
RestAssured.trustStore(trustore, "changeit");
, они работают правильно, но мне кажется, что этот тест неверен.
В моем тесте я хотел бы использовать clientCert.pem.auth (). certificate () в уверенности принимает URL-адрес в хранилище ключей JKS, поэтому я преобразовал myCert.pem в clientKeystore.jks, но с приведенной ниже конфигурацией он не работает.
RestAssured
.given()
.auth()
.certificate("clientKeystore.jks", "changeit")
.when()
.baseUri(baseUri)
.port(port)
.get("/home")
.then()
.statusCode(HttpStatus.OK.value())
.extract()
.response();
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
Яновичок в SSL, и я не могу понять, как это исправить.