Erreur Keytool « La réponse du certificat ne contient pas de clé publique » ou « Les clés publiques dans la réponse et le magasin de clés ne correspondent pas » lors de l’importation d’un nouveau certificat SSL

Summary: Keytool génère l’erreur « La réponse du certificat ne contient pas de clé publique » ou « Les clés publiques dans la réponse et le magasin de clés ne correspondent pas » lors de l’importation d’un nouveau certificat SSL si des certificats de confiance à chaîne complète sont manquants dans le magasin de clés (autorités de certification racine et subordonnées) ou si le certificat n’est pas signé à partir de la dernière 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

L’importation d’un certificat à l’aide de keytool génère l’une des erreurs suivantes :
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

Ces erreurs peuvent avoir plusieurs causes, mais elles sont principalement liées aux éléments suivants :
  • Utilisation d’un fichier de magasin de clés incorrect
  • pour les certificats signés en externe, les certificats de confiance de la chaîne complète manquants (racine et toutes les CA subordonnées)
  • le certificat n’a pas été signé à partir de la dernière demande de signature générée (CSR)

Resolution

Assurez-vous que le certificat signé et la CSR proviennent du magasin de clés approprié (clé privée) en vérifiant le module (les valeurs doivent être identiques) :

# 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

Assurez-vous que l’autorité de certification racine et le(s) certificat(s) subordonné(s) sont présents dans le magasin de clés :
# 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, ...

Pour importer un certificat signé en externe, les principales étapes sont les suivantes :

1/ Générez une clé privée dans un fichier de magasin de clés distinct :
# keytool -genkey -alias my-alias -keyalg RSA -keystore my-keystore.jks -storetype pkcs12

2/ Produire une demande de signature :
# keytool -certreq -keyalg RSA -alias my-alias -file my-sign-request.csr -keystore my-keystore.jks

3/ Faire signer la CSR par l’autorité de certification externe. 
Vous avez également besoin de tous les certificats de confiance : CA(s) racine et subordonnée(s). Doit être dans des fichiers séparés (à l’aide du format PEM).

4/ Importer le certificat d’autorité de certification racine de confiance :
# keytool -import -alias rootCA -keystore my-keystore.jks -trustcacerts -file root-CA.pem

5/ Importer les certificats intermédiaires :
# keytool -import -alias intermediateCA -keystore my-keystore.jks -trustcacerts -file intermediate-CA.pem
(répétez l’opération pour toutes les CA subordonnées de la chaîne de signature, en utilisant un nom d’alias unique)

6/ Importer le certificat signé (en utilisant le même alias que celui utilisé dans CSR) :
# keytool -import -alias my-alias -keystore my-keystore.jks -trustcacerts -file my-signed-cert.pem

Cet article de la base de connaissances est consacré à la création d’un magasin de clés avec un certificat SSL signé en externe à l’aide de l’utilitaire Java Keytool.
Reportez-vous à la documentation pour plus d’informations sur l’implémentation de PowerFlex :
- Guide de configuration de la sécurité : Gestion des certificats pour la passerelle
PowerFlex- Personnalisez et configurez PowerFlex : Sécurité
 

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.