Es konnte keine Vertrauensstellung für den sicheren SSL/TLS-Kanal mit subject alternative name certificate
Ich bin immer ein System.Net.WebException
Die zugrunde liegende Verbindung wurde geschlossen: Konnte keine Vertrauensstellung einrichten
Beziehung für den sicheren SSL/TLS-Kanal
Die innere Ausnahme ist System.Sicherheit.Die Authentifizierung.AuthenticationException
Des remote-Zertifikats ist ungültig nach der Validierung Verfahren
bei der Verwendung von System.Net.WebClient.DownloadString(String address) gegen www.foo.com mit einem Zertifikat für www.bar.com aber mit www.foo.com aufgeführt in der Subject Alternative Name-Feld ein.
Ausgestellt wird das Zertifikat von GoDaddy also Chrome und Internet Explorer betrachten Sie das Zertifikat gültig, wenn Sie gehen, um www.bar.com aber auch die haben keine Probleme mit dem Zertifikat, wenn der www.foo.com.
Ich denke, dies sollte ein gültiges Zertifikat für WebClient, da die Domäne aufgeführt ist, in der Subject Alternative Name-Feld, ist das richtig? Oder funktioniert der WebClient nicht die Verwendung von Subject Alternative Name-Feld für SSL-Zertifikate auf einer Website verwendet, aber auf der anderen Seite?
- Wenn Sie angeben, kann der server die URL, dann können wir einen besseren Blick auf, was Los ist.
- möglich, Duplikat der WCF: es Konnte keine Vertrauensstellung für den sicheren SSL/TLS-Kanal mit Autorität
- Lustigerweise war es etwas ähnliches wie die private static bool ValidateRemoteCertificate Lösung von Sebastian, dass tatsächlich das problem verursacht hat - Früheren Entwickler implementiert hat code zu überprüfen, den cert.Thema, das nicht enthalten, die SAN. Sobald wir gelöschte Zeile und überprüft werden, und der politische Fehler war es klar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, das ist richtig.
Darüber hinaus sollte es keine DNS-Namen in der
CN
. Platzieren Sie einen DNS-Namen in derCN
ist veraltet, sowohl von der IETF/RFC 6125 und die CA/Browser-Foren.Sollten Sie einen Anzeigenamen in das
CN
weil es dem Benutzer präsentiert wird. Sollten Sie den DNS-Namen in derSAN
.Während die Praxis ist veraltet, es ist nicht verboten...
Die besten, die ich sagen kann, eine Verbindung zu
www.foo.com
mitCN=www.bar.com
undSAN=www.foo.com
ist OK pro RFC 6125, Abschnitt 6.4.4; und das ist auch OK so pro CA/B Grundlinie Anforderungen in Abschnitt 9.2.1 und 9.2.2.So, noch ein paar Vermutungen, da wir nicht die echte URL des Servers oder der server ist real-Zertifikat:
WebClient.DownloadString
hat einen bugIA5STRING
eher alsUTF8
string)IA5STRING
- und end-Entität-die Issuer-DN " eineUTF8
string)Für die Vermutungen oben, Chrome und Internet Explorer könnte toleranter sein als
WebClient.DownloadString
.Wenn (3) ist das Problem, dann
WebClient.DownloadString
ist tatsächlich korrekt. In der Unterzeichnung der Hierarchie unten ist, kann das Attribut encoding des Zertifikat-Issuer DN muss die gleiche Codierung wie die Unterzeichner der Subjekt-DN. Sie können nicht mischen und passen Sie an.Die Grafik oben wurde schamlos verarscht von Peter Gutmann Engineering Security. Seine online frei verfügbar, und es wird Ihnen beibringen, eine Menge interessante sicherheitsrelevante Dinge. Er mag besonders poking Löcher in PKI und bietet zwei Kapitel über seine realen Ausfälle in der Praxis.