2016-10-29 1 views
0

I ve faced with very strange issue that i10 Ich kämpfe damit für 2 Tage. Ich habe versucht, Code unten auf einigen Dev-Maschinen laufen zu lassen und es läuft erfolgreich. Aber wenn ich versuche, es auf dem Produktionsserver mit Windows Server 2008 R2 ausgeführt werden - es mit folgenden Meldung fehlgeschlagen:Konnte keinen sicheren SSL/TLS-Kanal auf Windows-Server 2008 R2

Könnte sicheren SSL/TLS-Kanal

Hier ist der Code Beispiel nicht erstellt werden:

try 
     { 
      Console.WriteLine(ServicePointManager.SecurityProtocol); 
      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | 
                SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; 
      ServicePointManager.Expect100Continue = true; 
      ServicePointManager.ServerCertificateValidationCallback += 
       (sender, certificate, chain, sslPolicyErrors) => true; // ignoring certificate errors 
      Console.WriteLine(ServicePointManager.SecurityProtocol); 
      using (var client = new WebClient()) 
      { 
       client.DownloadString("https://smlegacygateway-integration.mysmartmove.com/LandlordApi/v1/ServerTime"); 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Something goes wrong"); 
      Console.Write(ex); 
     } 

     Console.WriteLine("Everything is fine."); 
     Console.ReadLine(); 

Könnten Sie mir bitte mit irgendwelchen Ideen helfen, warum es nur auf Windows Server 2008 R2 fehlschlug ??? Ich habe versucht, es auf Windows Server 2012 zu starten - alles ist in Ordnung.

P.S. Ich führe diese Konsole App mit Admin-Berechtigung, so dass es keine Lücke von Rechten beziehen sollte Vielen Dank im Voraus.

Antwort

0

Ehrlich, ich weiß nicht warum. Ich nehme an, dass es sein könnte, weil Windows 2012 neue Verschlüsselungsalgorithmen unterstützt, die Windows 2008 nicht unterstützt.

Gemäß this ssl test Server unterstützt nur TSL 1.2 und TSL 1.1 und nur wenige Cipher Suites ausgewählt. Alle Handshake-Tests, die bestanden wurden, wurden mit TSL 1.2 durchgeführt, so dass ich mit diesem Protokoll ingehen würde.

Der Grund, warum Verbindung in Windows 2008 fehlgeschlagen ist, konnte in CAPI2-Ereignisprotokoll gefunden werden. Sie müssen es zuerst aktivieren und dann versuchen, erneut eine Verbindung zum Server herzustellen (smlegacygateway-integration.mysmartmove.com). CAPI2 event log

Oh, letzter Rat. Bitte tun Sie das nicht:

Wenn Sie Zertifikat-Validierung implementieren müssen implementieren Sie es dann. Die Rückkehr immer wahr ist keine gute Wahl. Wenn Sie es nicht überschreiben müssen, dann berühren Sie es nicht :)

Verwandte Themen