2011-09-15 15 views
5

標準SSLStreamを使用してC#でSSLサーバーを実装しています。SSLStreamのAuthenticateAsServer()で証明書チェーンを提供するには?

これまでのところすべて問題はありませんが、AuthenticateAsServerは1つの証明書だけをパラメータとして受け取りますが、完全なチェーン(3つ)を指定する必要があります。

すべての証明書(Mono.Securityの助けを借りて)でPKCS12構造体を構築した後、new X509Certificate2(pkcs12.GetBytes())を呼び出しましたが、クライアントに提示されるのは1つだけです。

だから、どうしたらいいのでしょうか?

ありがとうございます!

PS:Windows上でMonoと.NETの両方で動作するポータブルなソリューションが必要です。

答えて

0

設定が正しいです。 WebサーバーではSslStream(またはそれ以外のもの)の証明書が1つだけ使用されます。

証明書にはいくつかの情報が欠けている可能性があります。サーバー証明書のAuthority Information Access拡張子は、中間証明書がダウンロードされるURIを指します。

この情報は欠落していますか?

+0

実際、SslStreamは証明書チェーンを送ることができます(これは、ドキュメントに記載されているものであり、Microsoft.Netで行うことができます)。第二に、Monoにはこれを防ぐバグがあります(明らかに)。第3に、すべての証明書の拡張がすべてのSSLクライアントによってサポートされているわけではありません... – aldem

関連する問題