Помилка 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
Ці помилки можуть мати кілька причин, але в основному вони пов'язані з:
- Використання неправильного файлу сховища ключів
- для сертифікатів із зовнішнім підписом, відсутні довірені сертифікати повного ланцюга (root і будь-які підпорядковані ЦС)
- сертифікат не був підписаний з останнього згенерованого запиту на підпис (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, підписаний зовнішнім ЦС.
Вам також знадобляться всі сертифікати, яким можна довіряти: root і підлеглі CA(s). Має бути в окремих файлах (у форматі PEM).
4/ Імпортуйте довірений кореневий сертифікат ЦС:
# 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- Налаштуйте та налаштуйте 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.