Keytool-feil "Sertifikatsvar inneholder ikke offentlig nøkkel" eller "Offentlige nøkler som svar og nøkkellager samsvarer ikke" når du importerer nytt SSL-sertifikat

Summary: Keytool vil gi feil "Sertifikatsvar inneholder ikke offentlig nøkkel" eller "Offentlige nøkler som svar og nøkkellager samsvarer ikke" når du importerer et nytt SSL-sertifikat hvis pålitelige fullkjedesertifikater mangler i nøkkellageret (rot- og underordnede CAer) eller sertifikatet ikke er signert fra siste 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

Hvis du importerer et sertifikat ved hjelp av nøkkelverktøyet, får du én av følgende feil:
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

Disse feilene kan ha flere årsaker, men de vil for det meste være relatert til:
  • Bruke feil nøkkellagerfil
  • for eksternt signerte sertifikater, manglende fullkjedede klarerte sertifikater (rotsertifiseringsinstanser og eventuelle underordnede sertifiseringsinstanser)
  • sertifikatet er ikke signert fra siste genererte signeringsforespørsel (CSR)

Resolution

Sørg for signert sertifikat, CSR er fra riktig nøkkellager (privat nøkkel) ved å sjekke modul (verdiene må være identiske):

# 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

Kontroller at CA-rotsertifiseringsinstansen og underordnede sertifikat(er) finnes i nøkkellageret:
# 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, ...

For å importere eksternt signert sertifikat er hovedtrinnene:

1/ Generer en privat nøkkel i en egen nøkkellagerfil:
# keytool -genkey -alias my-alias -keyalg RSA -keystore my-keystore.jks -storetype pkcs12

2/ Produser en forespørsel om signering:
# keytool -certreq -keyalg RSA -alias my-alias -file my-sign-request.csr -keystore my-keystore.jks

3/ Få CSR-en signert av den eksterne sertifiseringsinstansen. 
Du trenger også alle sertifikater for å stole på: root &; subordinate CA (s). Må være i separate filer (ved hjelp av PEM-format).

4/ Importer det klarerte CA-rotsertifikatet:
# keytool -import -alias rootCA -keystore my-keystore.jks -trustcacerts -file root-CA.pem

5/ Importer de mellomliggende sertifikatene:
# keytool -import -alias intermediateCA -keystore my-keystore.jks -trustcacerts -file intermediate-CA.pem
(gjenta for alle underordnede sertifiseringsinstanser i signeringskjeden ved hjelp av unike aliasnavn)

6/ Importer det signerte sertifikatet (med samme alias som brukes i CSR):
# keytool -import -alias my-alias -keystore my-keystore.jks -trustcacerts -file my-signed-cert.pem

Denne KB er fokusert på hvordan du skal bygge et nøkkellager med eksternt signert SSL-sertifikat ved hjelp av Java keytool verktøyet.
Se dokumentasjonen for detaljer om PowerFlex-implementeringen:
– Veiledning for sikkerhetskonfigurasjon: Sertifikatadministrasjon for PowerFlex Gateway
- Tilpass og konfigurer PowerFlex: Sikkerhet
 

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.