У меня есть файл, содержащий:
-----BEGIN CERTIFICATE-----
(many lines of 64 bytes)
-----END CERTIFICATE-----
я использую keytool.exe -printcert -file (myfile)
он выводит так
Certificate[1]:
Owner: CN=www.mydomain.xxxxxx
(bah bah bah............)
(bah bah bah............)
Certificate[2]:
Owner: CN=Thawte SSL CA, O="Thawte, Inc.", C=US
(bah bah bah............)
(bah bah bah............)
Certificate[3]:
Owner: CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
(bah bah bah............)
(bah bah bah............)
Это нормально, что он содержит 3 сертификата?
Это называется цепочкой сертификатов?
Что мне делать, если я хочу импортировать этот файл в keystore
?
Я пробовал снова и снова использовать
keytool.exe -import -alias (myalias) -trustcacerts -file (thisfile) -keystore (mykeystore)`
но он продолжает говорить мне
java.lang.Exception: Input not an X.509 certificate
В keytool
требует, чтобы цепочки сертификатов были предоставлены в PKCS # 7 формат (обычно .p7b
расширение файла), но у вас оно как PEM файл (который скорее используется такими программами, как Apache, nginx и т.д.).
Из keytool
руководство (-importcert
вариант):
-importcert:
Читает сертификат или цепочку сертификатов (где последний предоставляется в формате ответа PKCS # 7) ...
Для преобразования файла вы можете использовать openssl
утилита (если она есть под рукой):
openssl crl2pkcs7 -certfile cert.pem -out cert.p7b -nocrl
куда cert.pem
это ваш текущий файл сертификата и cert.p7b
тот, который нужно использовать для импорта.