Estoy intentando hacer un servidor simple que escuche en un puerto y se autentique con ssl. Tengo archivosConfiguración de un socket de servidor ssl con certificado firmado
server.crt
server.key
my-ca.crt
obtenidos con un tutorial openssl (http://www.vanemery.com/Linux/Apache/apache-SSL.html). my-ca.crt
es mi propio certificado de CA, server.crt
contiene el certificado de servidor x509 (firmado con my-ca.crt) y server.key
es la clave privada correspondiente.
Ahora no sé cómo cargar estos tres archivos en C#; Tengo algo así como
serverCertificate = new X509Certificate2("server.crt", "secret_password");
sslStream.AuthenticateAsServer(serverCertificate, false, SslProtocols.Tls, true);
que no funciona (I obtener una
Unhandled Exception: System.NotSupportedException: The server mode SSL must use a certificate with the associated private key.
) pero no tengo ni idea de cómo añadir el server.key
y/o my-ca.crt
.
he tratado de hacerlo de esta manera: ' openssl req -x509 -nodes -days 365 -newkey RSA: 1024 -keyout "temp \ signkey.key" salida privado "temp \ signkey.key "-config" openssl.cfg "' y 'openssl pkcs12 -export -out" temp \ certificate.pfx "-in" temp \ signkey.key "-name" NAME "' pero la excepción permanece. ¿Alguna idea? –
@Christoph necesita incluir la clave privada en el proceso de exportación de la siguiente manera: 'openssl pkcs12 -export -out certificate.pfx -in certificate.cer -inkey certificate.key -name" SSL stream Certificado "' con el parámetro '-inkey' . – Joseph