新しいSSL証明書をインポートすると、Keytoolエラー「証明書の応答に公開キーが含まれていません」または「応答の公開鍵とキーストアが一致しません」が発生する
Summary: 信頼できるフルチェーン証明書がキーストア(ルートCAと下位CA)にない場合、または証明書が最後のCSRから署名されていない場合、Keytoolは新しい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 matchCause
これらのエラーには複数の原因が考えられますが、主に次のことに関連しています。
- 間違ったキーストア ファイルの使用
- 外部署名付き証明書の場合、フルチェーンの信頼できる証明書(ルートCAおよび従属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 を取得します。
また、信頼するすべての証明書 (ルート CA と下位 CA) も必要になります。個別のファイル(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で使用されているものと同じエイリアスを使用)。
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 SoftwareArticle 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.