При отправке API-запроса возникает ошибка: unable to find valid certification path to requested target

При отправке api-запроса на ресурс возникает ошибка:

"javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

Из-за чего это может быть?

package switchover;
import io.restassured.RestAssured;
import io.restassured.config.SSLConfig;
import io.restassured.response.Response;
import org.junit.Test;


import static io.restassured.RestAssured.given;

public class CheckLeader {
    @Test
    public void checkLeader(){
        String certPath = "path";
        String pass = "pass";

        RestAssured.config = RestAssured.config().sslConfig(
                new SSLConfig().keyStore(certPath, pass).trustStore(certPath, pass));

        Response response = given()
                .relaxedHTTPSValidation()
                .config(RestAssured.config())
                .get("path")
                .then()
                .statusCode(200)
                .extract().response();
        System.out.println(response.prettyPrint());
    }

}

Ответы (1 шт):

Автор решения: Roman C

У вас отсутствует доверенный сертификат в хранилище сертификатов. Вам надо добавить сертификат для приложения в файл truststore используемой JVM, расположенный в

$JAVA_HOME\lib\security\cacerts.

Чтобы проверить, есть ли ваш сертификат в хранилище доверенных сертификатов, выполните следующую команду:

 keytool -list -keystore "$JAVA_HOME/jre/lib/security/cacerts" 

Если ваш сертификат отсутствует, то вы можете получить его, загрузив его с помощью браузера, и добавив в хранилище доверенных сертификатов, с помощью следующей команды:

keytool -import -noprompt -trustcacerts -alias <AliasName> -file <certificate> -keystore <KeystoreFile> -storepass <Password>

Пример:

keytool -import -noprompt -trustcacerts -alias myAlias -file /path/to/my/cert/myCert.cer -keystore /path/to/my/jdk/jre/lib/security/cacerts/keystore.jks -storepass changeit

После импорта, в можете проверить, если ваш сертификат добавлен в хранилище доверенных сертификатов, с помощью команды вверху.

Более подробную информацию вы можете найти в Java Tutorial.

→ Ссылка