Ошибка keytool «Ответ сертификата не содержит открытого ключа» или «Открытые ключи в ответе и хранилище ключей не совпадают» при импорте нового SSL-сертификата
Summary: Keytool выдаст ошибку «Ответ сертификата не содержит открытого ключа» или «Открытые ключи в ответе и хранилище ключей не совпадают» при импорте нового SSL-сертификата, если доверенные сертификаты полной цепочки отсутствуют в хранилище ключей (корневой и подчиненный ЦС) или сертификат не подписан последним CSR. ...
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
# keytool -importcert -alias my-alias -keystore my-keystore.jks -trustcacerts -file my-signed-cert.pem
При импорте сертификата с помощью keytool возникает одна из следующих ошибок:
keytool error: java.lang.Exception: Certificate reply does not contain public key for my-alias
keytool error: java.lang.Exception: Public keys in reply and keystore don't matchCause
Эти ошибки могут быть вызваны различными причинами, но чаще всего они связаны со следующими причинами:
- Использование неверного файла хранилища ключей
- для сертификата с внешней подписью, в котором отсутствуют доверенные сертификаты полной цепочки (корневой и все подчиненные ЦС)
- Сертификат не был подписан из последнего созданного запроса подписи (CSR)
Resolution
Убедитесь, что подписанный сертификат и CSR получены из правильного хранилища ключей (закрытый ключ), проверив модуль упругости (значения должны быть идентичными):
# openssl pkcs12 -in my-keystore.jks -nodes -nocerts | openssl rsa -modulus -noout | openssl sha256
...
(stdin)= c46656d2c830cddba552198aa186ba4b13b0623d10d08768442fef28b9a4be4d
# openssl req -noout -modulus -in certreq.txt | openssl sha256
(stdin)= c46656d2c830cddba552198aa186ba4b13b0623d10d08768442fef28b9a4be4d
# openssl x509 -noout -modulus -in signed-cert.pem | openssl sha256
(stdin)= c46656d2c830cddba552198aa186ba4b13b0623d10d08768442fef28b9a4be4d
Убедитесь, что корневой источник сертификатов и подчиненный сертификат(ы) присутствуют в хранилище ключей:
# keytool -list -keystore my-keystore.jks
Your keystore contains 3 entries
my-alias, Sep 28, 2022, PrivateKeyEntry, ...
rootCA, Sep 28, 2022, trustedCertEntry, ...
intermediateCA, Sep 28, 2022, trustedCertEntry, ...
Для импорта сертификата, подписанного извне, основные шаги
:1/ Создание закрытого ключа в отдельном файле хранилища ключей:
# keytool -genkey -alias my-alias -keyalg RSA -keystore my-keystore.jks -storetype pkcs12
2/ Создайте запрос на подписание:
# keytool -certreq -keyalg RSA -alias my-alias -file my-sign-request.csr -keystore my-keystore.jks
3/ Получите CSR, подписанный внешним CA.
Вам также понадобятся все сертификаты для доверия: корневой и подчиненный CA(s). Должен быть в виде отдельных файлов (в формате PEM).
4. Импортируйте доверенный корневой сертификат CA:
# keytool -import -alias rootCA -keystore my-keystore.jks -trustcacerts -file root-CA.pem
5/ Импорт промежуточных сертификатов:
# keytool -import -alias intermediateCA -keystore my-keystore.jks -trustcacerts -file intermediate-CA.pem
(повторите эти действия для всех подчиненных ЦС в цепочке подписания, используя уникальный псевдоним)
6. Импортируйте подписанный сертификат (используя тот же псевдоним, что используется в CSR):
6. Импортируйте подписанный сертификат (используя тот же псевдоним, что используется в CSR):
# keytool -import -alias my-alias -keystore my-keystore.jks -trustcacerts -file my-signed-cert.pem
В этой статье статьи базы знаний рассказывается о том, как правильно создать хранилище ключей с SSL-сертификатом с внешней подписью с помощью утилиты Java keytool.
Подробные сведения о внедрении PowerFlex см. в документации: руководство по настройке безопасности:
Управление сертификатами для PowerFlex Gateway
- Настройка и настройка PowerFlex: Безопасность
Affected Products
PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex SoftwareArticle Properties
Article Number: 000206194
Article Type: Solution
Last Modified: 11 Apr 2025
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.