0

C#では、次のように初期化されたX509StoreからX509Certificate2オブジェクトをロードしています。

        X509Store store = new X509Store("My", StoreLocation.LocalMachine);
        store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);

私はOpensslで証明書を作成しましたが、「任意の目的」に設定されています。したがって、X509Certificate2.Extensionsは空ではなく、「ServerAuth」拡張機能を保持していると思います。ただし、拡張機能は常に空のリストです。何か案は?

4

1 に答える 1

2

そこにあると思われるデータが実際にそこにあることを確認するためだけに、独立したソースで証明書を再確認します。私は通常、Web ベースのツールのいずれかを使用します。

http://www.redkestrel.co.uk/cgi/decodeCert.pl

http://www.bogpeople.com/networking/CertDecoder/

はそのような 2 つのツールです。

そうすれば、それがテスト データなのか、X509 ライブラリの使用なのかがわかります。

次に、「任意の目的」に設定するという意味がわかりません。Open SSL のドキュメントを調べましたが、あなたが説明した設定が見当たりません。キーの使用法を定義する証明書には、キー使用法と拡張キー使用法という 2 つの拡張機能があります。また、Open SSL コマンドと構成ファイルの説明には、「任意」を設定してこれらすべてを有効にする場所が示されていません。あなたが欲しいと思うのは、拡張キー使用法拡張の「serverAuth」値です。

http://www.openssl.org/docs/apps/x509v3_config.html#Extended_Key_Usage_

使用された特定の openSSL コマンドと証明書生成用の構成ファイルを投稿する意思がある場合は、おそらくもっと役立つでしょう。

于 2009-07-24T20:41:11.163 に答える