3

シナリオは次のとおりです。

いくつかの.pfxファイルがあり、それらを MySQL DB に保存する必要があります。

私はすでにRawDataのものを保存しようとしましたが、再構築された証明書を使用してxmlに署名しようとすると、次のようになります:

署名鍵がロードされていません。

さて、関数ToXmlStringを使用して秘密鍵から文字列を生成しFromXmlString、新しい文字列をロードして、秘密鍵を保存しようとしましたが、次のようになります。

オブジェクトには、キー ペアの公開半分のみが含まれます。秘密鍵も提供する必要があります。

ポイントは、証明書とそのキーをデータベースに正しく保存して、再構築してデジタル署名ドキュメントに使用できるようにする方法です。

アップデート:

すでにこれを試してみましたが、うまくいきませんでした: Store an X509Certificate2 in DB

4

1 に答える 1

4

証明書には公開鍵しか含まれていないため、それだけを保存しても機能しません。

一方、cert.PrivateKey.ToXmlString(true)動作するはずです。includePrivateParameters引数を true に設定して呼び出し、エクスポート可能としてインポートしたことを覚えていますか?

X509Certificate2 cert = new X509Certificate2("key.pfx", "password", X509KeyStorageFlags.Exportable);
string xml = cert.PrivateKey.ToXmlString(true);

または、pfx 全体をデータベースに保存することもできます。

于 2012-07-04T21:20:35.173 に答える