He generado una CA y varios certificados (firmados por CA) usando OpenSSL y tengo un cliente y servidor .NET/C# ambos usando SslStream
, cada uno con sus propios certificados/claves. la autenticación mutua está habilitada y la revocación está deshabilitada.Verificar el servidor remoto X509Certificate utilizando el archivo de certificado CA
estoy usando RemoteCertificateValidationCallback
para SslStream
para validar el certificado del servidor remoto y esperaba que sólo podía cargar el certificado público de la CA (como un archivo) en el programa y utilizarlo para comprobar el certificado de control remoto en lugar de instalar realmente el CA en el Windows Certificate Store. El problema es que el X509Chain
no mostrará nada más a menos que instale la CA en la tienda, o el shell de Windows CryptoAPI cuando abro una versión PEM de uno de los certificados.
Mi pregunta es, ¿cómo puedo comprobar un certificado ha sido firmado por mi específica CA sólo mediante el uso de archivos certificado público de la CA sin utilizar el almacén de certificados de Windows o WCF cuando no parecen RemoteCertificateValidationCallback
, X509Certificate
y X509Chain
para dar algo con lo que trabajar?
No entiendo por qué agregar el certificado de CA a Windows Store hace que X509Chain lo muestre en la cadena, pero si no lo hago no es parte de él. ¿Hay alguien para agregar el certificado de CA a la cadena dentro de RemoteCertificateValidationCallback? – user985122
Todavía no puedo encontrar una respuesta a esto :( – user985122