Ich habe vor kurzem diesen Fehler erhalten, als ich versucht habe, mich über Twitter anzumelden - eine Idee warum?
Stack Trace:
[AuthenticationException: The remote certificate is invalid according to the validation procedure.]
System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) +230
System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) +13
System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) +123
[WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.]
System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) +6432446
System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) +64
.net
asp.net-mvc
twitter
twitter-oauth
owin
user441365
quelle
quelle
Antworten:
Dank der Leistungsfähigkeit von Open Source können wir sehen, dass die Fingerabdrücke für die Twitter-Zertifikate im Katana-Projekt codiert wurden.
Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions
Vor kurzem müssen sich einige Zertifikate geändert haben und jetzt stimmen die Fingerabdrücke nicht mehr überein.
Fügen Sie Ihren Twitter-Authentifizierungsoptionen in Ihrem Internet einen neuen Fingerabdruck für das Zertifikat "VeriSign Class 3 Public Primary Certification Authority - G5" hinzu
Startup.Auth.cs
(für MVC-Benutzer) .Vom Standard ändern:
app.UseTwitterAuthentication( consumerKey: "XXXX", consumerSecret: "XXX" );
Benutze das:
app.UseTwitterAuthentication(new TwitterAuthenticationOptions { ConsumerKey = "XXXX", ConsumerSecret = "XXXX", BackchannelCertificateValidator = new CertificateSubjectKeyIdentifierValidator(new[] { "A5EF0B11CEC04103A34A659048B21CE0572D7D47", // VeriSign Class 3 Secure Server CA - G2 "0D445C165344C1827E1D20AB25F40163D8BE79A5", // VeriSign Class 3 Secure Server CA - G3 "7FD365A7C2DDECBBF03009F34339FA02AF333133", // VeriSign Class 3 Public Primary Certification Authority - G5 "39A55D933676616E73A761DFA16A7E59CDE66FAD", // Symantec Class 3 Secure Server CA - G4 "5168FF90AF0207753CCCD9656462A212B859723B", //DigiCert SHA2 High Assurance Server CA "B13EC36903F8BF4701D498261A0802EF63642BC3" //DigiCert High Assurance EV Root CA }) });
quelle
Um die Leute zusammenzufassen und zu retten, die in den Kommentaren stöbern, hier die neueste Konfiguration:
app.UseTwitterAuthentication(new TwitterAuthenticationOptions { ConsumerKey = "XXXX", ConsumerSecret = "XXXX", BackchannelCertificateValidator = new Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator(new[] { "A5EF0B11CEC04103A34A659048B21CE0572D7D47", // VeriSign Class 3 Secure Server CA - G2 "0D445C165344C1827E1D20AB25F40163D8BE79A5", // VeriSign Class 3 Secure Server CA - G3 "7FD365A7C2DDECBBF03009F34339FA02AF333133", // VeriSign Class 3 Public Primary Certification Authority - G5 "39A55D933676616E73A761DFA16A7E59CDE66FAD", // Symantec Class 3 Secure Server CA - G4 "add53f6680fe66e383cbac3e60922e3b4c412bed", // Symantec Class 3 EV SSL CA - G3 "4eb6d578499b1ccf5f581ead56be3d9b6744a5e5", // VeriSign Class 3 Primary CA - G5 "5168FF90AF0207753CCCD9656462A212B859723B", // DigiCert SHA2 High Assurance Server CA "B13EC36903F8BF4701D498261A0802EF63642BC3" // DigiCert High Assurance EV Root CA }) });
Alle Credits an @MichaelLake und @KennethIto.
quelle
Schalten Sie Fiddler aus.
Irgendwie bringt der Fiddler-Webdebugger das Oauth für Twitter durcheinander.
quelle
Nur zu Testzwecken (!) Ist es auch möglich, die einzustellen
options.BackchannelCertificateValidator = null;
und fügen Sie Ihrem Global.asax Application_Start Folgendes hinzu:
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
quelle
Der DigiCert SHA2 High Assurance Server C Ein Wert von "5168FF90AF0207753CCCD9656462A212B859723B" scheint nicht gültig zu sein. Der neue Wert lautet "01C3968ACDBD57AE7DFAFF9552311608CF23A9F9". Es ist gültig vom 28.06.2016 bis 19.09.2019. Ich habe es gefunden, indem ich in Chrome zu https://api.twitter.com/ gegangen bin und dann auf das Vorhängeschloss in der Adressleiste geklickt habe, um das Zertifikat anzuzeigen.
quelle
Ich hatte genau dieses Problem. Ich folgte dem obigen Beitrag und bekam den 401 (nicht autorisierten) Fehler, der in einem anderen Kommentar erwähnt wurde.
Ich ging zu meinem Twitter-Entwicklerkonto und deaktivierte das Kontrollkästchen "Rückrufsperre aktivieren". Klicken Sie auf Speichern, drücken Sie F5 und es hat funktioniert.
Der obige Code hat also für mich funktioniert. Wenn Sie einen 401 erhalten, überprüfen Sie Ihr Twitter-Konto auf das Kontrollkästchen.
quelle
Für mich hat das Update
Microsoft.Owin.Security.Twitter
auf Version 3.1.0 das Problem behoben, auch ohne die Fingerabdrücke hinzuzufügen!quelle
Ich hatte das gleiche Problem und habe die Rückruf-URL in meiner Twitter-App aktualisiert.
Hinzufügen der Standard-URL https: // mywebsite / signin-twitter
quelle