J'essaie de créer un serveur simple qui écoute sur un port et s'authentifie avec ssl. J'ai des fichiersConfiguration d'un socket serveur ssl avec certificat signé
server.crt
server.key
my-ca.crt
obtenus avec un tutoriel OpenSSL (http://www.vanemery.com/Linux/Apache/apache-SSL.html). my-ca.crt
est mon propre certificat de CA, server.crt
contient le certificat de serveur x509 (signé avec my-ca.crt) et server.key
est la clé privée correspondante. Je ne sais pas comment charger ces trois fichiers dans C#;
J'ai quelque chose comme
serverCertificate = new X509Certificate2("server.crt", "secret_password");
sslStream.AuthenticateAsServer(serverCertificate, false, SslProtocols.Tls, true);
qui ne fonctionne pas (j'obtenir un
Unhandled Exception: System.NotSupportedException: The server mode SSL must use a certificate with the associated private key.
) mais je n'ai pas la moindre idée comment ajouter le server.key
et/ou my-ca.crt
.
j'ai essayé de le faire comme ceci: 'req OpenSSL -x509 -nodes -days 365 -newkey rsa: 1024 -keyout "temp \ signkey.key" départ « temp \ signkey.key "-config" openssl.cfg "' et 'openssl pkcs12 -export -out" temp \ certificat.pfx "-in" temp \ signkey.key "-nom" NAME "' mais l'exception reste. Une idée? –
@Christoph vous devez inclure la clé privée sur le processus d'exportation comme suit: 'openssl pkcs12 -export -out certificat.pfx -in certificat.cer -inkey certificat.key -name" SSL flux Certificat "' avec paramètre -inkey' . – Joseph