it-swarm.com.de

Owin Twitter Login - Das Remote-Zertifikat ist gemäß dem Validierungsverfahren ungültig

Ich habe vor kurzem diese Fehlermeldung erhalten, als ich versuchte, mich über Twitter anzumelden.

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
68
user441365

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

In letzter Zeit müssen sich einige Zertifikate geändert haben, und die Fingerabdrücke stimmen jetzt nicht mehr überein.

Fügen Sie Ihren Twitter-Authentifizierungsoptionen in Ihrem Startup.Auth.cs (für MVC-Benutzer) einen neuen Daumendruck für das Zertifikat "VeriSign Class 3 Public Primary Certification Authority - G5" hinzu.

Ändern Sie den Standardwert:

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 C‎A 
        "B13EC36903F8BF4701D498261A0802EF63642BC3" //DigiCert High Assurance EV Root CA
    })
});
95
MichaelLake

Um die Leute zusammenzufassen und zu retten, die durch die Kommentare graben, 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 C‎A 
        "B13EC36903F8BF4701D498261A0802EF63642BC3" // DigiCert High Assurance EV Root CA
    })
});

Alle Credits an @MichaelLake und @KennethIto.

86
webStuff

Fiddler ausschalten.

Irgendwie vermasselt Fiddlers Web-Debugger den Oauth für Twitter.

5
Matt

Nur zu Testzwecken (!) Kann auch eingestellt werden 

options.BackchannelCertificateValidator = null;

und füge sie zu Global.asax Application_Start hinzu:

ServicePointManager.ServerCertificateValidationCallback = delegate 
{ 
    return true; 
};
5
Martin Staufcik

Der DigiCert SHA2 High Assurance Server C Ein Wert von "5168FF90AF0207753CCCD9656462A212B859723B" scheint nicht gültig zu sein. Der neue Wert lautet "01C3968ACDBD57AE7DFAFF9552311608CF23A9F9". Es ist vom 28.06.2016 bis zum 19.09.2014 gültig. Ich habe es gefunden, indem ich in Chrome zu https://api.Twitter.com/ gehe und dann in der Adressleiste auf das Vorhängeschloss klicke, um das Zertifikat anzuzeigen.

3
Jon B

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

0
Moiyd

Ich hatte genau dieses Problem. Ich folgte dem obigen Beitrag und bekam den 401-Fehler (nicht autorisiert) in einem anderen Kommentar. 

Ich ging zu meinem Twitter Dev-Konto 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 eine 401 erhalten, überprüfen Sie Ihr Twitter-Konto auf das Kontrollkästchen. 

0
RoadRunner

Für mich war es einfach, Microsoft.Owin.Security.Twitter auf Version 3.1.0 zu aktualisieren, auch ohne die Daumenabdrücke hinzuzufügen!

0
Waqas Shah