Failed to establish chain from reply ошибка

I’m having an error in importing the trial SSL certificate from CA. Below is my steps in creating the keystore. Please correct me if I’m wrong. Thank you in advance!

1.First, I created a keystore to be put in the server.

keytool -keystore server_keystore.jks -genkey -alias server -keyalg rsa -keysize 2048

2.Created a CSR.

keytool -keystore server_keystore.jks -certreq -alias server -keyalg rsa -file server.csr
  • Sent the CSR to CA (Thawte) and replied with three trial certificate namely, CA root, CA intermediate and trial SSL. Saved it to a text file with file extension .cer. (trial_ca_ssl.cer, trial_ca_root.cer, trial_ca_intermediate.cer)

3.Tried to import the trial_ca_ssl.cer in server_keystore.jks but I received an error.

keytool -import -keystore server_keystore.jks -file trial_ca_ssl.cer -alias server

Error:

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

user207421's user avatar

user207421

306k44 gold badges307 silver badges483 bronze badges

asked Jul 4, 2013 at 8:12

iamtheexp01's user avatar

4

You should keep your trial_ca_ssl.cer text on top of top server.cer. This will make a hierarchy of two certificate like this. Then you should import it.

——BEGIN CERTIFICATE—— MIIDSjCCAjKgAwIBAgIIEvabM2CgLZcwDQYJKoZIhvcNAQEFBQAwMzETMBEGA1UE
AxMKV2FsdGVyIENBMTEPMA0GA1UEChMGV2FsdGVyMQswCQYDVQQGEwJTRTAeFw0w
MzA5MjkwOTI2MzRaFw0wNDA5MjgwOTM2MzRaMDMxEzARBgNVBAMTCldhbHRlciBD
QTExDzANBgNVBAoTBldhbHRlcjELMAkGA1UEBhMCU0UwggEgMA0GCSqGSIb3DQEB
AQUAA4IBDQAwggEIAoIBAQC3hXksEud68WwPWWHLJQQkTCuX/K32KHPPn/uPUzab
Cpc/FnaTmF9yEHmpFdAUr0v5ZPnxVQpcuwrDZc4YfaTLfyUHicQbkftsPAj/2hE4
UukS2j+nQQcJEnIY0vSZOAOLU3j4bf/RlS6Jl7TPFFfWTxuQF8AruQ+YhaE52JFi
SapGGXKQJxhsvKT91rLaWSFWNMTTLSDPaBXYEYFuFhLNclDJWf4whfxHSHHkARB/
3Z0XlT4sFj0fmqEQ6yQb6/WqMFK+1XAIBXZO2MXe26IigWkXw1GfkIx1+fbUPrzu
8EI2jb0TWl21j1+Mvh3APZtVj5FJNuZN9bgdbrq88hLXAgERo2QwYjAPBgNVHRMB
Af8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFNhHOtAwo8MOE/nI
zzg9KFxCYs8YMB8GA1UdIwQYMBaAFNhHOtAwo8MOE/nIzzg9KFxCYs8YMA0GCSqG
Sib3DQEBBQUAA4IBAQBHpvicbuJTACtpdwe6cF1nQ57FHnnYr+aAe+ZpH43R6R9d
eMps02nFAMSs5o8sbPokrpwAtk2yYwCohEFDkZ5JPzIBkgNlNnVHNNRHQTRJ6v6Q
F2MWUEPc1u5kxSjXEVMmZerG9oknMwpYFmkOnKF46vP3Njt/ExOeRAvCEQq2b8pz
2QGg8/IK6Omfi7IwxtVYUpgvhdcWekbFIlxkXZiEdlHNBIV1GzzPK1VEzg5kugD/
h6jeykrsKASx+55AkkBPt2kI+ZikVtp3SVhfZQMGY86c5QMQGlPWYNsr4ociyhfX
I52Qby+/HNG1ijpx66Z30lUMmXTtWtL4Cu8s7UvC

——END CERTIFICATE——

——BEGIN CERTIFICATE—— MIICxzCCAa+gAwIBAgIIBfqGjbQu14swDQYJKoZIhvcNAQEFBQAwMzETMBEGA1UE
AxMKV2FsdGVyIENBMTEPMA0GA1UEChMGV2FsdGVyMQswCQYDVQQGEwJTRTAeFw0w
MzA5MjkwOTMzMDFaFw0wNDAxMDcwOTQzMDFaMDQxETAPBgNVBAMTCER1ZGUgQ0Ex
MRIwEAYDVQQKEwlEdWRlIEluYy4xCzAJBgNVBAYTAlNFMIGdMA0GCSqGSIb3DQEB
AQUAA4GLADCBhwKBgQCM1hR/DYPXfKDa3oVJbppV4OcYtn2XP9W5Kc1d0+U4qLOm
JsqIFHDWR07o1QFiPhc9z0UGtwYeE3CpQ8fG8zeur5e286PYptZIST77B9vOdQdl
PA+dFKFIaEwdzcS7H3Lf38WTE4D1OnyRX5jsiUe+YIQRtjv/Bmem+kSR84G9TwIB
EaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0GA1UdDgQW
BBTDrXZGYXS9GyIUBOZrglhwNjjcnTAfBgNVHSMEGDAWgBTYRzrQMKPDDhP5yM84
PshcQmLPGDANBgkqhkiG9w0BAQUFAAOCAQEAdmTP1qVUcAKOf+/zvb2lcLKvFwKT
6KqDlO5NofjqCIfNgCjO2mO176cslnFIbEZQqgGIUnJ3AwfHKHj+U3kM3n5T29kF
xiLKxIDfjsY6qC03KHeGAgxI92XZyPsO1is6Y6qUnAmiwhIp5HS6E0+xIP1shmtJ
ZvqU8bueKUWSjx3JDzq+UNLX5pFkK0P0R90TCUEkBx1FNWqoWwb8zfAuO5zcNTEj
5E9esLjwxJQnIVPiA2l3FfZN9yomK+q7kTZJkX2kMx7G850lPR8CneXZT6bIOfck
Dw3PqQiroMNx2+gzC/f/wTXsF92aujyG+IZx1FIcNg/MoHXBWG7T8YrjnQ==

——END CERTIFICATE——

For details read the User Guide of EJBCA.

answered Jul 4, 2013 at 8:34

Masudul's user avatar

MasudulMasudul

21.8k5 gold badges43 silver badges58 bronze badges

one possibility is that you use the default openssl tool in Mac, but you copy \openssl\apps\ca-cert.srl from a newer version openssl.

answered Feb 7, 2015 at 8:37

Qing's user avatar

QingQing

1,4012 gold badges21 silver badges41 bronze badges

1

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

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, поставляемые с моим сертификатом, являются промежуточными сертификатами (на самом деле они кажутся одинаковыми промежуточными сертификатами).

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

enter image description here


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

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

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

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

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

  3. откроется новое окно, перейдите к вторая вкладка и нажмите на кнопку» Сохранить файл». Откроется мастер экспорта для ceritficate.
  4. при экспорте выберите опцию X. 509 base 64 и следуйте инструкциям. Сохранить файл.
  5. повторите для промежуточного сертификата.
  6. загрузите оба сертификата на свой сервер и импортируйте в хранилище ключей, следуя порядку — первый корень, второй промежуточный и, наконец, ваш сертификат. [Нет необходимости импортировать корень сертификат]

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

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

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

keytool -list -keystore [keystore file]

16

автор: Alejandro von Wuthenau


Я получил ту же ошибку при попытке импортировать сертификаты 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
после того, как вы введете выше команду он будет запрашивать пароль, введите пароль и нажмите на да.


Keytool is a utility provided by Java for managing keystore entries, such as public key certificates and private keys. Developers and administrators often use Keytool to generate and manage keys and certificates for Secure Sockets Layer (SSL) connections. However, you might encounter the Java.lang.Exception: Failed to establish chain from reply error when importing a certificate into the keystore. This guide will walk you through the steps to fix this error and establish a chain from the reply.

Table of Contents

  1. Prerequisites
  2. Understanding the Error
  3. Step-by-Step Solution
  4. Frequently Asked Questions (FAQ)
  5. Related Links

Prerequisites

Before proceeding with the troubleshooting steps, ensure that you have the following:

  1. Java Development Kit (JDK) installed on your system. You can download it from the official Oracle website.
  2. A valid SSL certificate and its corresponding private key.
  3. The certificate chain file, which includes the root and intermediate CA certificates.

Understanding the Error

The Java.lang.Exception: Failed to establish chain from reply error occurs when Keytool is unable to validate the certificate chain while importing a certificate into the keystore. This error usually happens when one or more certificates in the chain are missing or incorrect.

Step-by-Step Solution

Follow these steps to fix the Java.lang.Exception: Failed to establish chain from reply error and establish a chain from the reply:

Verify the Certificate Chain: Ensure that the certificate chain file contains the correct root and intermediate CA certificates. You can use an online SSL checker tool, like the SSL Shopper Certificate Decoder, to decode and verify the certificates.

Import the Root CA Certificate: Before importing the SSL certificate, import the root CA certificate into the keystore using the following command:

keytool -import -trustcacerts -alias root -file <root_certificate_file> -keystore <keystore_file>

Replace <root_certificate_file> with the path to the root CA certificate file and <keystore_file> with the path to your keystore.

Import the Intermediate CA Certificate: Next, import the intermediate CA certificate into the keystore using the following command:

keytool -import -trustcacerts -alias intermediate -file <intermediate_certificate_file> -keystore <keystore_file>

Replace <intermediate_certificate_file> with the path to the intermediate CA certificate file.

Import the SSL Certificate: Finally, import the SSL certificate into the keystore using the following command:

keytool -import -trustcacerts -alias <your_domain> -file <ssl_certificate_file> -keystore <keystore_file>

Replace <your_domain> with your domain name, <ssl_certificate_file> with the path to your SSL certificate file, and <keystore_file> with the path to your keystore.

If you have followed these steps correctly, you should be able to import the SSL certificate without encountering the Java.lang.Exception: Failed to establish chain from reply error.

Frequently Asked Questions (FAQ)

1. How do I find the root and intermediate CA certificates?

You can obtain the root and intermediate CA certificates from your SSL provider. Most providers offer a certificate bundle or chain file, which includes the necessary CA certificates.

2. How do I create a keystore file?

You can create a keystore file using the following command:

keytool -genkey -keyalg RSA -alias <your_domain> -keystore <keystore_file> -validity <validity_days> -keysize <key_size>

Replace <your_domain> with your domain name, <keystore_file> with the desired keystore filename, <validity_days> with the number of days the key should be valid, and <key_size> with the desired key size (e.g., 2048).

3. How do I view the contents of a keystore file?

Use the following command to view the contents of a keystore file:

keytool -list -v -keystore <keystore_file>

Replace <keystore_file> with the path to your keystore.

4. How do I remove an entry from a keystore file?

To remove an entry from a keystore file, use the following command:

keytool -delete -alias <alias_name> -keystore <keystore_file>

Replace <alias_name> with the alias of the entry you want to remove and <keystore_file> with the path to your keystore.

5. Can I use a different password for my private key and the keystore?

Yes, you can use different passwords for the private key and the keystore. Use the -keypass option while creating the keystore and importing the SSL certificate to specify a separate password for the private key.

  1. Keytool Documentation: Official documentation from Oracle for the Keytool utility.
  2. SSL Shopper Certificate Decoder: A useful online tool for decoding and verifying SSL certificates and certificate chains.
  3. Java Keytool Essentials: Working with Java Keystores: A comprehensive guide on working with Java keystores using Keytool.

Некоторые любят погорячее, а некоторые — понадежнее, поэтому те вторые некоторые не верят всяческим self-signed сертификатам.

Задача: заставить websphere принять и простить такой self-signed сертификат.

1. Для этого сначала делается простая пара ключей:
>keytool -genkey -keyalg RSA -keystore server.keystore -dname «CN=cn, OU=ou, O=o, L=l, ST=st, C=LV» -storepass server -keypass server -alias alias

2. Сделать запрос:
>keytool -certreq -alias alias -keystore server.keystore -storepass server -file request.csr

3. request.csr надо недоверчивой компании, чтобы те подписали ваш сертификат, и прислали его подписанным обратно.

4. При замене начального сертификата на подписанный вывалится ошибка:
>keytool -import -keystore server.keystore -alias alias -storepass server -file signed.cer
keytool error: java.lang.Exception: Failed to establish chain from reply

Чтобы решить ошибку, вам необходима цепь сертификатов — chain of trust — обычно это файл с расширением .pem.
keytool толком не умеет добавлять цепь, поэтому:
А) открываем chainoftrust.pem любым редактором и видим следующее:

——BEGIN CERTIFICATE——
Blablabla на кучу строк
——END CERTIFICATE——
——BEGIN CERTIFICATE——
Blablabla на кучу строк
——END CERTIFICATE——
…..
——BEGIN CERTIFICATE——
Blablabla на кучу строк
——END CERTIFICATE——

Б) Каждый блок сохраняете в отдельный файлик: 1.cer, 2.cer и так далее.

В) Добавляем каждый блок в набор ключей:
>keytool -import -keystore server.keystore -alias chain1 -storepass server -file 1.cer
>keytool -import -keystore server.keystore -alias chain2 -storepass server -file 2.cer

>keytool -import -keystore server.keystore -alias chainX -storepass server -file X.cer

Г) После этого подписанный сертификат должен нормально замениться:
>keytool -import -keystore server.keystore -alias alias -storepass server -file signed.cer

Let's Encrypt Community Support

Loading

Понравилась статья? Поделить с друзьями:
  • Failed to allocate ethash dag buffer ошибка
  • Failed to add class member altium designer ошибка
  • Failed exit code 1 postgresql ошибка
  • Failed crc check ошибка
  • Failed command write failed no error ошибка fastboot