Błąd narzędzia Keytool "Odpowiedź certyfikatu nie zawiera klucza publicznego" lub "Klucze publiczne w odpowiedzi i magazynie kluczy nie są zgodne" podczas importowania nowego certyfikatu SSL

Summary: Keytool wyświetli błąd "Odpowiedź certyfikatu nie zawiera klucza publicznego" lub "Klucze publiczne w odpowiedzi i magazynie kluczy nie są zgodne" podczas importowania nowego certyfikatu SSL, jeśli w magazynie kluczy brakuje zaufanych certyfikatów pełnego łańcucha (główne i podrzędne urzędy certyfikacji) lub certyfikat nie jest podpisany z ostatniego 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

Importowanie certyfikatu za pomocą narzędzia keytool powoduje wyświetlenie jednego z następujących błędów:
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 match

Cause

Błędy te mogą mieć wiele przyczyn, ale są one głównie związane z:
  • Używanie niewłaściwego pliku magazynu kluczy
  • w przypadku certyfikatu podpisanego zewnętrznie — brak zaufanych certyfikatów w pełnym łańcuchu (urzędy główne i podrzędne urzędy certyfikacji)
  • certyfikat nie został podpisany z ostatnio wygenerowanego żądania podpisania (CSR)

Resolution

Upewnij się, że podpisany certyfikat, CSR pochodzą z właściwego magazynu kluczy (klucz prywatny), sprawdzając moduł (wartości muszą być identyczne):

# 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

Upewnij się, że główna instytucja certyfikująca i certyfikaty podrzędne są obecne w magazynie kluczy:
# 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, ...

Aby zaimportować certyfikat podpisany zewnętrznie, główne kroki to:

1/ Wygeneruj klucz prywatny w osobnym pliku magazynu kluczy:
# keytool -genkey -alias my-alias -keyalg RSA -keystore my-keystore.jks -storetype pkcs12

2/ Przygotuj prośbę o podpisanie:
# keytool -certreq -keyalg RSA -alias my-alias -file my-sign-request.csr -keystore my-keystore.jks

3/ Uzyskanie podpisu CSR przez zewnętrzny urząd certyfikacji. 
Do zaufania potrzebne są również wszystkie certyfikaty: główne i podrzędne urzędy certyfikacji. Musi znajdować się w osobnych plikach (w formacie PEM).

4/ Zaimportuj zaufany certyfikat głównego urzędu certyfikacji:
# keytool -import -alias rootCA -keystore my-keystore.jks -trustcacerts -file root-CA.pem

5/ Importuj certyfikaty pośrednie:
# keytool -import -alias intermediateCA -keystore my-keystore.jks -trustcacerts -file intermediate-CA.pem
(powtórz tę czynność dla wszystkich podrzędnych urzędów certyfikacji w łańcuchu podpisywania, używając unikatowej nazwy aliasu)

6/ Zaimportuj podpisany certyfikat (używając tego samego aliasu, który jest używany w CSR):
# keytool -import -alias my-alias -keystore my-keystore.jks -trustcacerts -file my-signed-cert.pem

Ten artykuł bazy wiedzy koncentruje się na tym, jak prawidłowo zbudować magazyn kluczy z zewnętrznie podpisanym certyfikatem SSL przy użyciu narzędzia Java keytool.
Szczegółowe informacje na temat wdrożenia PowerFlex można znaleźć w dokumentacji:
Przewodnik po konfiguracji zabezpieczeń: Zarządzanie certyfikatami dla PowerFlex Gateway
- Dostosuj i skonfiguruj PowerFlex: Bezpieczeństwo
 

Affected Products

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex Software
Article 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.