Erro de keytool "A resposta do certificado não contém uma chave pública" ou "As chaves públicas na resposta e o keystore não correspondem" ao importar um novo certificado SSL

Summary: O Keytool gerará o erro "A resposta do certificado não contém uma chave pública" ou "As chaves públicas na resposta e o keystore não correspondem" ao importar um novo certificado SSL se os certificados confiáveis de cadeia completa estiverem ausentes no keystore (CAs raiz e subordinada) ou o certificado não for assinado da última 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

A importação de um certificado usando keytool produz um dos seguintes erros:
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

Esses erros podem ter várias causas, mas na maioria das vezes estariam relacionados a:
  • Usando um arquivo de keystore incorreto
  • para certificados assinados externamente, certificados confiáveis de cadeia completa ausentes (CAs raiz e quaisquer CAs subordinadas)
  • certificado não assinado da última solicitação de assinatura gerada (CSR)

Resolution

Certifique-se de que o certificado assinado e a CSR são do keystore correto (chave privada) verificando o módulo (os valores devem ser idênticos):

# 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

Certifique-se de que a CA raiz e o(s) certificado(s) subordinado(s) esteja(m) presente(s) no keystore:
# 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, ...

Para importar um certificado assinado externamente, as etapas principais são:

1/ Gere uma chave privada em um arquivo separado do keystore:
# keytool -genkey -alias my-alias -keyalg RSA -keystore my-keystore.jks -storetype pkcs12

2/ Produzir uma solicitação de assinatura:
# keytool -certreq -keyalg RSA -alias my-alias -file my-sign-request.csr -keystore my-keystore.jks

3/ Obtenha a CSR assinada pela CA externa. 
Você também precisa de todos os certificados para confiar: root & subordinate CA(s). Deve estar em arquivos separados (usando o formato PEM).

4/ Importe o certificado da CA raiz confiável:
# keytool -import -alias rootCA -keystore my-keystore.jks -trustcacerts -file root-CA.pem

5/ Importe os certificados intermediários:
# keytool -import -alias intermediateCA -keystore my-keystore.jks -trustcacerts -file intermediate-CA.pem
(repita para todas as CAs subordinadas na cadeia de assinatura, usando um nome de alias exclusivo)

6/ Importe o certificado assinado (usando o mesmo alias usado na CSR):
# keytool -import -alias my-alias -keystore my-keystore.jks -trustcacerts -file my-signed-cert.pem

Este artigo da KB se concentra em como criar corretamente um keystore com certificado SSL assinado externamente usando o utilitário Java keytool.
Consulte a documentação para obter detalhes da implementação do PowerFlex:
- Guia de configuração de segurança: Gerenciamento de certificados para o PowerFlex Gateway
- Personalizar e configurar o PowerFlex: Segurança
 

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.