Подтвердить что ты не робот

Ошибка keytool: java.lang.Exception: Не удалось установить цепочку из ответа

Создать хранилище ключей:

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

Когда я установил окончательный сертификат (my.crt), я получил следующую ошибку:

keytool error: java.lang.Exception: Failed to establish chain from reply

Я считаю, что я импортировал цепочку и в правильном порядке, поэтому я очень смущен этим сообщением. Может ли кто-нибудь увидеть, что я делаю неправильно?

4b9b3361

Ответ 1

Я только что обнаружил, что файлы godaddy, поставляемые вместе с моим сертификатом, являются промежуточными сертификатами (на самом деле они кажутся одним и тем же промежуточным сертификатом).

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

enter image description here

Ответ 2

Я боролся с той же проблемой около двух недель, пока не нашел способ обойти это. Проблемы заключались в том, что корневые и промежуточные сертификаты, которые поставлялись с моим сертификатом от Godaddy, были не теми, которые мне нужны. Я много раз искал в репозитории Godaddy, не в состоянии найти подходящие сертификаты.

Я просмотрел свой сертификат на своем ноутбуке (используя Windows 8.1). Там я увидел цепочку сертификатов, и я смог экспортировать корневые и промежуточные сертификаты. Затем я импортировал их в хранилище ключей и работал так, как должен.

Для этого выполните следующие действия:

  • Просмотр сертификата на компьютере под управлением Windows. Вы увидите цепочку сертификатов на третьей вкладке, которая выглядит следующим образом. ввести изображение описание здесь

  • Выберите корневой сертификат из цепочки и нажмите кнопку "Просмотреть сертификат".

  • Откроется новое окно, перейдите ко второй вкладке и нажмите кнопку "Сохранить файл". Это откроет мастер экспорта для вашего ceritficate.
  • При экспорте выберите опцию X.509 base 64 и следуйте инструкциям. Сохраните файл.
  • Повторите для промежуточного сертификата.
  • Загрузите оба сертификата на свой сервер и импортируйте их в хранилище ключей, следуя порядку: первый корень, второй промежуточный и, наконец, ваш сертификат. [Нет необходимости импортировать корневой сертификат]

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

keytool -delete -alias [root] -keystore [keystore file]

Если вы не знаете, что находится внутри вашего keytool, вы можете просмотреть, используя:

keytool -list -keystore [keystore file]

Ответ 3

У меня такая же ошибка при попытке импортировать сертификаты, сертифицированные CA, в хранилище ключей в среде Linux.

Я выполнил множество шагов и успешно импортировал их.

После получения сертификатов, сертифицированных CA, выполните следующие шаги для импорта сертификатов в хранилище ключей.

шаг 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]

Среда, выполняемая этими командами, представляет собой сертификат Java версии 7. GODADDY.

для получения дополнительной информации обратитесь на сайт: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html#importCertCmd

Ответ 4

Чтобы устранить эту проблему, используйте дополнительные ключи (-trustcacerts) в командах keytool.

Команда для импорта промежуточных сертификатов из файла intermediate.cer в файл certsks keystore должна выглядеть следующим образом:

keytool -storetype JCEKS -storepass passwd -keystore certificates.ks -import -alias промежуточное -trustcacerts файл intermediate.cer

Команда для импорта сертификата из файла http.cer в файл сертификатов cert.ks должна выглядеть так:

keytool -storetype JCEKS -storepass passwd -keystore certificates.ks -import -alias http -trustcacerts файл http.cer

Повторите попытку завершения процесса создания и импорта подписанного SSL-сертификата.

Ответ 5

Загрузите цепочку сертификатов, откройте ее в Windows - она ​​хранит сертификат CA и ваш сертификат от CA.

Сначала импортируйте CA cert в хранилище ключей, а затем импортируйте ответ из CA.

Ответ 6

Следующий шаг очень важен, прежде чем импортировать сертификаты в локальный магазин ключей. После получения подписанных сертификатов от CA).

импортировать корневой сертификат в cacerts, который будет доступен в папке JAVA_HOME/jre/lib/security, используя следующую команду:

keytool -importcert -alias root -file [корневой сертификат] -keystore cacerts после ввода команды введите пароль, введите пароль и нажмите "Да".