標準SSLStreamを使用してC#でSSLサーバーを実装しています。SSLStreamのAuthenticateAsServer()で証明書チェーンを提供するには?
これまでのところすべて問題はありませんが、AuthenticateAsServerは1つの証明書だけをパラメータとして受け取りますが、完全なチェーン(3つ)を指定する必要があります。
すべての証明書(Mono.Securityの助けを借りて)でPKCS12構造体を構築した後、new X509Certificate2(pkcs12.GetBytes())
を呼び出しましたが、クライアントに提示されるのは1つだけです。
だから、どうしたらいいのでしょうか?
ありがとうございます!
PS:Windows上でMonoと.NETの両方で動作するポータブルなソリューションが必要です。
実際、SslStreamは証明書チェーンを送ることができます(これは、ドキュメントに記載されているものであり、Microsoft.Netで行うことができます)。第二に、Monoにはこれを防ぐバグがあります(明らかに)。第3に、すべての証明書の拡張がすべてのSSLクライアントによってサポートされているわけではありません... – aldem