2017-05-05 5 views
0

ich auf interne Website zu verbinden versuchen, die ordnungsgemäß signiertes SSL-Zertifikat verwendet (funktioniert in Chrome 58), aber wenn ich diesen Code in .NET ausführen wirft es Fehler:SSL/TLS-Fehler mit Httpclient

The Request was aborted: Could not create SSL/TLS channel.

ServicePointManager.MaxServicePointIdleTime = 0; 
ServicePointManager.Expect100Continue = true; 
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls 
        | SecurityProtocolType.Tls11 
        | SecurityProtocolType.Tls12 
        | SecurityProtocolType.Ssl3; 

var client = new HttpClient(); 
var request = new HttpRequestMessage(HttpMethod.Get, "https://internal-website"); 
request.Headers.Add("token", "---"); 
var result = client.SendAsync(request); 
result.Wait(); 

Der einzige Grund, den ich mir vorstellen kann, ist die Tatsache, dass das Zertifikat alternativen Antragstellernamen für DNS-Namen verwendet (es hat 4 Einträge dort) und CN keiner von ihnen passt, aber es funktioniert immer noch in Chrome und Postman.

Der Code, den ich vor dem Erstellen von HttpClient hinzugefügt habe, war die SSL-Prüfung zu deaktivieren, aber es hat keine Ideen funktioniert, wie ich dieses Problem debuggen kann?

+0

einschalten hohe Ausführlichkeit Tracing: https://msdn.microsoft.com/ en-us/library/ty48b824 (v = vs.110) .aspx –

+0

Alles, was ich sollte in dieser Spur suchen? – baalazamon

Antwort

1

Nach einigen Untersuchungen stellte sich heraus, dass es sich um ein Problem mit der Länge des DHE-Schlüssels handelte.

.Net und IE DHE erfordern größer oder gleich 1024 zu sein, aber für diesen Dienst, war der Schlüssel 512. Reference to Microsoft KB

Wenn auf dem Server Schlüssellänge ändert nicht möglich ist, Sie Registrierung auf der Benutzermaschine ändern kann .

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Securityproviders \ SCHANNEL \ KeyExchangeAlgorithms \ Diffie-Hellman] "ClientMinKeyBitLength" = dword: 00000200