Я пытаюсь подключить Java Web API через HTTPS; однако возникает исключение:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
Я выполнил следующие шаги, которые я узнал из онлайн-руководств по использованию инструментов для ключей и SSL-сертификатов:
Я скопировал URL-адрес HTTPS в браузер, загрузил сертификаты SSL и установил их в браузере с помощью Internet Explorer.
Экспортировал сертификаты в путь на моем компьютере, сертификаты были сохранены как
.cer
Использовал опцию импорта keytool. Приведенная ниже команда выполнена без ошибок.
keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
Мне было предложено ввести пароль в командной строке, который я ввел, а затем прошел аутентификацию.
В
cmd
окне были напечатаны некоторые данные сертификата и подписи, и мне был предложен вопрос:Доверять этому сертификату?
Я ответил да.
Отображается приглашение cmd
Сертификат добавлен в хранилище ключей
Однако после этого сообщения было отображено другое исключение:
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
Наконец, когда я проверил хранилище ключей, сертификат SSL не был добавлен, и мое приложение выдает то же исключение, которое я получал ранее при попытке подключения:
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)
keytool
команду, которую вы выполнили, и ее вывод? некоторые из очевидных проблем здесь - это опечатка в-keystore
аргументе и тот факт, что keytool не смог найти хранилище ключей для импорта ключа