私は最近、ドキュメントのデジタル署名を実行するドキュメントが最小限のプロジェクトを継承しましたが、変更要求を受け取り、少し当惑しました。
このアプリケーションは Java ベースであり、Java キーストア (JKS) を利用し、コマンド ライン操作として指定されたエイリアスの秘密鍵を使用して、入力ドキュメントにデジタル署名します。これはすべて私にはかなり簡単に思えますが、変更要求は私を混乱させました.
クライアントは、「Windows」キーストア (より具体的には、私が知る限り、個人証明書に関連する Windows-MY キーストア) を使用する機能を要求しました。ここで、私の最初の仮定は、クライアントが要求していることは単に不可能であるということです。これは、このキー ストアには証明書しか含まれておらず、ドキュメントの署名には使用できないためです。私は間違っていますか、それとも Windows-MY キーストアには公開証明書しか含まれませんか? これらの証明書のいずれかに秘密鍵が組み込まれることはないと思います。
残念ながら、コミュニケーションの問題がいくつかあるので、先に進む前に私の推論が正しいことを確認したいと思います.
私のケースを裏付ける証拠がいくつかあります(クライアントからの連絡):
Windows キー ストアの作成 (Java キーストアからのエクスポート) の手順は次のとおりです。
RSA キーを生成する
keytool -genkey -alias mykey -keyalg RSA -keystore my.jks -keysize 2048
上記のキーストアから証明書をエクスポートします。
keytool -export -alias mykey -file mykey.crt -keystore my.jks Enter keystore password: temp123 Certificate stored in file <mykey.crt>
上記の証明書を Windows キーストアにインストールします。
を。「mykey.crt」をダブルクリックし、「証明書のインストール」をクリックします
b. 「すべての証明書を次のストアに配置する」ラジオ ボタンを選択し、「参照」ボタンをクリックして Windows 証明書ストアに追加します。c. WindowsMy ストアでこの証明書を確認してください。
私が間違っていない限り、keytool は実際の公開鍵と秘密鍵のペアではなく、証明書の種類のみを生成しますか?
質問に明確さが欠けていることをお詫びしますが、残念ながら、現時点で私が取り組まなければならないのはこれだけです。JavaまたはWindows固有の回答は役に立ちますが、基本原則の確認だけでもいただければ幸いです。
前もって感謝します