bouncycastleを使用して小さな認証局を構築しようとしています。
証明書はBouncyCastleを使用して生成され、秘密鍵とともに現在のユーザーの証明書ストアに保存されます。
ただし、セキュリティ上の理由から、キーはエクスポート不可としてマークされています。これを回避するのは簡単ですが、それは追加の障壁になることを意味します。
ここで、新しい証明書に署名する必要がある場合は、証明書の秘密鍵にアクセスする必要があります。私はこのコードを使ってみました:
X509Certificate2 caCert = GetRootKey(); // Fetches the certificate from the store
AsymmetricCipherKeyPair caPrivKey = DotNetUtilities.GetKeyPair(caCert.PrivateKey);
残念ながら、CryptographicExceptionが発生します-秘密鍵がエクスポート不可としてマークされているため、これは私が意図したものです;-)
私の質問は、証明書にアクセスせずに証明書の秘密鍵を使用するにはどうすればよいですか?秘密鍵にアクセスする方法がなければ秘密鍵を保存しても意味がないので、いくつかの重要な点を見逃していると確信しています...
私は今これを何時間も探していますが、stackoverflowやGoogleで何も見つかりません。
私が根本的に間違っていることを誰かに教えてもらえますか?何かに署名する別のアプローチはありますか?!
前もって感謝します!
クリス