2010-07-12 17 views
5

के साथ एक एसएसएल सर्वर सॉकेट सेट अप करना मैं एक साधारण सर्वर बनाने की कोशिश कर रहा हूं जो पोर्ट पर सुनता है और एसएसएल के साथ प्रमाणित करता है। मैं फ़ाइलों कोहस्ताक्षरित प्रमाणपत्र

server.crt 
server.key 
my-ca.crt 

एक openssl ट्यूटोरियल (http://www.vanemery.com/Linux/Apache/apache-SSL.html) के साथ प्राप्त की है। my-ca.crt मेरा स्वयं का सीए प्रमाणपत्र है, server.crt में x509 सर्वर प्रमाणपत्र (my-ca.crt के साथ हस्ताक्षरित) और server.key संबंधित निजी कुंजी है।

अब मुझे नहीं पता कि इन तीन फ़ाइलों को सी # में कैसे लोड किया जाए; मैं की तरह

serverCertificate = new X509Certificate2("server.crt", "secret_password"); 
sslStream.AuthenticateAsServer(serverCertificate, false, SslProtocols.Tls, true); 

जो कुछ काम नहीं करता है (मैं एक

Unhandled Exception: System.NotSupportedException: The server mode SSL must use a certificate with the associated private key. 

मिल), लेकिन मैं कोई सुराग नहीं कैसे server.key और/या my-ca.crt जोड़ने के लिए।

उत्तर

3

रूप

serverCertificate = new X509Certificate2("server.pfx", "secret_password"); 

आप PKCS12 स्वरूप में प्रमाण पत्र को बचाने चाहिए में X509Certificate2 का उपयोग करें। देखें http://www.madboa.com/geek/openssl/#cert-pkcs12 और http://www.openssl.org/docs/apps/pkcs12.html

+0

मैं इस तरह यह करने के लिए कोशिश की है: 'openssl अनुरोध -x509 -nodes -days 365 -newkey आरएसए: 1024 -keyout" अस्थायी \ signkey.key "आउट" अस्थायी \ signkey.key "-config" openssl.cfg "' और 'openssl pkcs12 -export -out" temp \ circuit.pfx "-in" temp \ signkey.key "-name" NAME "' लेकिन अपवाद बनी हुई है। कोई उपाय? –

+0

@ क्रिस्टोफ आपको निर्यात प्रक्रिया पर निजी कुंजी को निम्नानुसार शामिल करने की आवश्यकता है: 'openssl pkcs12 -export -out प्रमाणपत्र.pfx -in प्रमाणपत्र.cer -inkey प्रमाणपत्र.key -name" एसएसएल स्ट्रीम प्रमाणपत्र "' -inkey' पैरामीटर के साथ । – Joseph

संबंधित मुद्दे