У меня есть сервер Apache (xampp / wamp), который обеспечивает SSL-соединение через порт 443. Он использует два файла сертификатов: server.cert и server.key, когда последний содержит закрытый ключ.
Iдругой сервер настроен на прослушивание запросов через порт 843 (флэш-политики) и ответ на определенный запрос с некоторым текстовым ответом, написанным на C #, который выполняется отдельно.
Для достижения возможности подключения SSL я использую flexобъект под названием SecureSocket, который позволяет, однако, использовать оригинальный сертификат сервера для шифрования запроса.
Моя цель - научить мой сервер 843 C # расшифровывать отправленные данные и шифровать ответ, и для этого яЯ использую объект X509Certificate в C #.
Однако, поскольку ключи pub и priv находятся в разных файлах, я получаю FALSE в следующих случаях:
string text = System.IO.File.ReadAllText(@"C:\xampp\apache\conf\ssl.crt\server.crt");
UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] byteCert = encoding.GetBytes(text);
X509Certificate2 uberCert = new X509Certificate2();
uberCert.Import(byteCert);
Console.WriteLine("Has privateKey:" + uberCert.HasPrivateKey.ToString());
Console.WriteLine("PrivateKey: \n" + uberCert.PrivateKey);
Очевидно, Falseна uberCert.HasPrivateKey происходит из-за того, что закрытый ключ находится в другом файле, поэтому мои вопросы:
1.Как я могу прочитать закрытый ключ, используя объект X509CErtificate2?2.Как я могу использовать открытый ключ для расшифровки полученного сообщения и как повторно зашифровать его с помощью закрытого ключа (чтобы отправить зашифрованный ответ обратно)?
Заранее спасибо,
Майк.