2011-09-15 6 views
5

Estoy implementando un servidor SSL en C#, usando SSLStream estándar.¿Cómo se proporciona la cadena de certificados en AuthenticateAsServer() de SSLStream?

Todo está bien hasta ahora, pero - AuthenticateAsServer acepta solo un certificado único como parámetro, mientras que yo tengo que proporcionar la cadena completa (3 de ellos).

He construido PKCS12 struct con todos los certificados (con la ayuda de Mono.Security), luego llamo al new X509Certificate2(pkcs12.GetBytes()), pero, sin embargo, solo se presenta uno al cliente.

Entonces, la pregunta es: ¿cómo se podría hacer esto?

Gracias!

PD: Necesito una solución portátil, que funcionará tanto en Mono como en .NET en Windows.

Respuesta

0

Su configuración es correcta. El servidor web usa solo un certificado con el SslStream (o cualquier otra cosa).

Al certificado le puede faltar cierta información: La extensión Authority Information Access de su certificado de servidor debe apuntar al URI donde se descargará el certificado intermediario.

¿Falta esta información?

+0

Bueno, en realidad, SslStream puede enviar cadenas de certificados (debe ser, esto es lo que dice la documentación y se puede hacer en Microsoft.Net). En segundo lugar, hay un error en Mono que impide esto (aparentemente). En tercer lugar, no todas las extensiones de certificado son compatibles con todos los clientes SSL, desafortunadamente ... – aldem

Cuestiones relacionadas