ошибка keytool: java.ленг.Исключение: не удалось установить цепочку из ответа
создать хранилище ключей:
keytool -genkey -alias tomcat -keyalg RSA -keystore my.keystore -keysize 2048
создать запрос подписи сертификата (CSR):
keytool -certreq -alias tomcat -keyalg RSA -file my.csr -keystore my.keystore
Я ухожу с моим хостинг-провайдера и получить сертификаты. Эти я установил следующим образом:
keytool -import -alias root -keystore my.keystore -trustcacerts -file gd_bundle-g2-g1.crt
keytool -import -alias intermed -keystore my.keystore -trustcacerts -file gdig2.crt
keytool -import -alias tomcat -keystore my.keystore -trustcacerts -file my.crt
когда я установил окончательный сертификат (мой.crt) я получил следующую ошибку:
keytool error: java.lang.Exception: Failed to establish chain from reply
Я считаю, что я импортировал цепь и в правильном порядке, поэтому я очень смущен этим сообщением. Кто-нибудь видит, что я делаю не так?
6 ответов
Я только что обнаружил, что файлы godaddy, поставляемые с моим сертификатом, являются промежуточными сертификатами (на самом деле они кажутся одинаковыми промежуточными сертификатами).
Я получил правильный корневой и промежуточный сертификаты, дважды щелкнув по моему сертификату и глядя на путь сертификата... отсюда я также могу загрузить каждый из этих сертификатов и использовать шаги, используемые в вопросе, чтобы импортировать их
я боролся с той же проблемой около двух недель, пока не нашел способ обойти ее. Проблема была в том, что корневые и промежуточные сертификаты, которые пришли с моим сертификатом от Godaddy, не были теми, которые мне нужны. Я много раз заглядывал в репозиторий Godaddy, не найдя подходящих сертификатов.
Я просмотрел свой сертификат на своем ноутбуке (используя Windows 8.1). Там я увидел цепочку сертификатов, и я смог экспортировать корневые и промежуточные сертификаты. Тогда Я импортировал их в мое хранилище ключей, и он работал так, как должен.
для этого выполните следующие действия:
Просмотр сертификатов на компьютере под управлением Windows. Вы сможете увидеть цепочку сертификатов на третьей вкладке, которая выглядит следующим образом.
выберите корневой сертификат из цепочки и нажмите на кнопку "Просмотреть сертификат".
- откроется новое окно, перейдите к вторая вкладка и нажмите на кнопку" Сохранить файл". Откроется мастер экспорта для ceritficate.
- при экспорте выберите опцию X. 509 base 64 и следуйте инструкциям. Сохранить файл.
- повторите для промежуточного сертификата.
- загрузите оба сертификата на свой сервер и импортируйте в хранилище ключей, следуя порядку - первый корень, второй промежуточный и, наконец, ваш сертификат. [Нет необходимости импортировать корень сертификат]
Примечание.: Прежде чем импортировать эти сертификаты, мне пришлось удалить те, которые были на моем хранилище ключей и не работали. Для этого я использовал следующие инструкции:
keytool -delete -alias [root] -keystore [keystore file]
Если вы не уверены, что находится внутри вашего keytool, вы можете просмотреть с помощью:
keytool -list -keystore [keystore file]
Я получил ту же ошибку при попытке импортировать сертификаты CA certified в хранилище ключей в среде Linux.
Я выполнил набор шагов и успешно импортировал его.
после получения сертификатов CA certified выполните следующие действия для импорта сертификатов в хранилище ключей.
Шаг 1:
импортируйте корневой сертификат в cacerts, который будет доступен в папке JAVA_HOME/jre/lib/security, используя следующее команда:
keytool -importcert -alias root -file [root certificate] -keystore cacerts
после того, как вы введете выше команду он будет запрашивать пароль, введите пароль и нажмите на да.
Шаг 2:
импорт корневого сертификата с помощью следующей команды:
keytool -importcert -alias root -file [root certificate] -keystore [keystore file name]
после того, как вы введете выше команду он будет запрашивать пароль, введите пароль и нажмите на да.
Шаг 3:
импорт промежуточного сертификата с помощью следующей команды:
keytool -importcert -alias intermediate -file [intermediate certificate] -keystore [key store file name]
как только вы введете над командой его подскажет для замены уже сертификата введите yes.
Примечание: промежуточный сертификат опционный можно проигнорировать, он приходит с сертификатом корня.
Шаг 4:
импорт сертификата сайта с помощью следующей команды:
keytool -trustcacerts -importcert -alias [alias name which give during keystore creation] -file [site certificate] -keystore [key store file name]
Environment выполняются эти команды java версии 7. сертификат выдается GODADDY.
для получения дополнительной информации см. сайт : http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html#importCertCmd
чтобы решить эту проблему, используют дополнительный переключатель (-trustcacerts) в командах keytool.
команда для импорта промежуточных сертификатов из промежуточного.файл cer для сертификатов.KS файл ключей должен выглядеть так:
keytool-storetype JCEKS-storepass passwd-сертификаты хранилища ключей.КС-импорт -псевдоним промежуточными -trustcacerts -файл промежуточными.cer
команда для импорта сертификата из http.файл cer для сертификатов.KS файл ключей должен выглядеть так:
keytool-storetype JCEKS-storepass passwd-сертификаты хранилища ключей.KS-import-псевдоним http -trustcacerts -файл http.cer
повторная попытка завершить процесс создания и импорта подписанного SSL-сертификата.
загрузите цепочку сертификатов, откройте ее в Windows - она хранит сертификат CA и ваш ответ сертификата от CA.
сначала импортируйте сертификат CA в хранилище ключей, а затем импортируйте ответ из CA.
следующий шаг очень важен перед импортом сертификатов в локальное хранилище ключей. После получения подписанных сертификатов от CA).
импортируйте корневой сертификат в cacerts, который будет доступен в папке JAVA_HOME/jre/lib/security, используя следующую команду:
keytool-importcert-псевдоним корневой файл [корневой сертификат] - keystore cacerts после того, как вы введете выше команду он будет запрашивать пароль, введите пароль и нажмите на да.