1

Windows 環境の .NET では、.pfx/.p12 に秘密キーが含まれている場合、次の方法で証明書ストアにプログラムでインストールできます (ここで、rawData は完全な .pfx/.p12 を含むバイト配列であり、両方とも公開鍵と秘密鍵、およびパスワードは .pfx/.p12 へのパスワードです):

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
X509Certificate2 certificate = new X509Certificate2(rawData, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);
store.Close();

Linux環境のMonoでまったく同じことをしようとしています。Windows で動作する上記のコードは、証明書の公開鍵のみを Linux にインストールし、秘密鍵はインストールしません。Mono の certmgr ユーティリティを使用して .p12 の秘密鍵を手動でインストールできましたが、プログラムによる解決策を探しています。

ありがとう!

4

1 に答える 1

1

問題を解決しないこの回答で申し訳ありません。Mono は、証明書ストアへの秘密鍵の永続化をサポートしていません。(非常に) 技術的な怒りの詳細は、この興味深い議論で見つけることができます 。

私のアプリでは、証明書と秘密鍵をデータベースに保存することになりました.

于 2012-12-18T15:58:38.867 に答える