Я приобрел сертификат SSL у GoDaddy для своего домена, и когда я скачал сертификат с GoDaddy, я получил следующие файлы.
У меня есть отправил файл 68668e2ed363d948.pem
на сторонний сервер во время регистрации для доступа к API. Теперь мне нужно отправить тот же сертификат при выполнении вызовов API для проверки подлинности.
Я пробовал следующие решения, но всегда получаю ошибку 401 Unauthorized
от API.
Решение 1
SSLContext sslContext = SSLContextBuilder
.create()
.loadTrustMaterial(ResourceUtils.getFile("classpath:68668e2ed363d948.pem"))
.build();
HttpClient client = HttpClients.custom()
.setSslcontext(sslContext)
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(client);
RestTemplate restTemplate = new RestTemplate(requestFactory);
Решение 2 Я выполнил приведенную ниже команду на сервере, чтобы он автоматически использовал сертификат для выполнения вызовов REST API.
keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file 68668e2ed363d948.cer -alias clientcert
Существуют и другие решения в какой JKS
файл необходим. Поэтому я попытался преобразовать файл .crt
в .jks
, но для этого необходим файл .key
, которого у меня нет.
Пожалуйста, укажите, как я могу использовать файл .crt
или .pem
выполнить аутентификацию клиента с помощью шаблона REST.
Спасибо!