새 SSL 인증서를 가져올 때 Keytool 오류 "인증서 회신에 공개 키가 포함되어 있지 않음" 또는 "회신 및 키 저장소의 공개 키가 일치하지 않음" 오류 발생

Summary: Keytool은 신뢰할 수 있는 전체 체인 인증서가 키 저장소(루트 및 하위 CA)에 없거나 인증서가 마지막 CSR에서 서명되지 않은 경우 새 SSL 인증서를 가져올 때 "인증서 회신에 공개 키가 포함되어 있지 않음" 또는 "회신 및 키 저장소의 공개 키가 일치하지 않음" 오류를 발생시킵니다.

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 match

Cause

이러한 오류에는 여러 가지 원인이 있을 수 있지만 대부분 다음과 관련이 있습니다.
  • 잘못된 키 저장소 파일 사용
  • 외부에서 서명된 인증서의 경우, 전체 체인의 신뢰할 수 있는 인증서 누락(루트 및 모든 하위 CA)
  • 마지막으로 생성된 서명 요청(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

루트 CA 및 하위 인증서가 키 저장소에 있는지 확인합니다.
# 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/ 외부 CA에서 서명한 CSR을 가져옵니다. 
또한 신뢰할 수 있는 모든 인증서가 필요합니다: root 및 subordinate CA(s). 별도의 파일(PEM 형식 사용)에 있어야 합니다.

4/ 신뢰할 수 있는 루트 CA 인증서 가져오기:
# 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
(고유한 별칭 이름을

사용하여 서명 체인의 모든 하위 CA에 대해 반복)6/ 서명된 인증서 가져오기(CSR에 사용된 것과 동일한 별칭 사용):
# keytool -import -alias my-alias -keystore my-keystore.jks -trustcacerts -file my-signed-cert.pem

이 KB는 Java keytool 유틸리티를 사용하여 외부에서 서명된 SSL 인증서로 키 저장소를 올바르게 빌드하는 방법에 초점을 맞춥니다.
PowerFlex 구현에 대한 자세한 내용은 설명서를 참조하십시오.
- 보안 구성 가이드: PowerFlex Gateway
용 인증서 관리- PowerFlex 맞춤 구성 및 구성: 보안
 

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.