OWIN Twitter login - le certificat distant n'est pas valide selon la procédure de validation

J'ai commencé à avoir cette erreur récemment en essayant de me connecter en utilisant twitter-une idée de pourquoi?

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
demandé sur abatishchev 2014-07-29 13:17:46

7 réponses

Grâce à la puissance de l'open source, nous pouvons voir que les empreintes des certificats twitter ont été codées dans le projet Katana.

Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions

Récemment, certains certificats ont dû changer et maintenant les empreintes de pouce ne correspondent plus.

Veuillez ajouter une nouvelle impression de pouce pour le certificat" VeriSign Class 3 Public Primary Certification Authority - G5 " à vos options D'authentification Twitter dans votre Startup.Auth.cs (pour les utilisateurs MVC).

Changement par rapport à la valeur par défaut:

app.UseTwitterAuthentication(
    consumerKey: "XXXX",
    consumerSecret: "XXX"
);

Utilisez ceci:

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
    })
});
94
répondu MichaelLake 2016-01-19 19:07:46

Pour résumer et sauver les gens en creusant dans les commentaires, voici la dernière config:

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
    })
});

Tous les crédits à @ MichaelLake et @ KennethIto.

85
répondu webStuff 2016-01-08 22:04:27

Éteignez le Violoneux.

En quelque sorte Fiddler débogueur web salit le OAuth pour Twitter.

5
répondu Matt 2014-08-28 00:47:59

À des fins de test uniquement (!) il est également possible de définir le

options.BackchannelCertificateValidator = null;

Et ajouter à votre Global.ASAX Application_Start:

ServicePointManager.ServerCertificateValidationCallback = delegate 
{ 
    return true; 
};
5
répondu Martin Staufcik 2014-10-26 17:23:03

La valeur CA du serveur Haute Assurance DigiCert SHA2 de "5168FF90AF0207753CCCD9656462A212B859723B" ne semble pas valide. La nouvelle valeur est "01C3968ACDBD57AE7DFAFF9552311608CF23A9F9". Il est valable du 28/06/2016 au 19/09/2019. Je l'ai trouvé en allant à https://api.twitter.com/{[2] } dans Chrome, puis en cliquant sur le cadenas dans la barre d'adresse pour afficher le certificat.

3
répondu Jon B 2016-08-10 20:54:41

J'ai eu ce problème exact j'ai suivi le post ci-dessus et j'ai eu l'erreur 401 (non autorisée) mentionnée dans un autre commentaire.

Je suis allé à mon compte de développement Twitter et décoché une case intitulée: "activer le verrouillage de rappel". Cliquez sur Enregistrer, appuyez sur F5 et cela a fonctionné.

Donc le code ci-dessus a fonctionné pour moi. Si vous obtenez un 401 vérifiez votre compte Twitter pour la case à cocher.

0
répondu RoadRunner 2015-12-16 03:15:24

Pour moi, juste mettre à jour Microsoft.Owin.Security.Twitter vers la version 3.1.0 l'a corrigé, même sans ajouter les empreintes de pouce!

0
répondu Waqas Shah 2017-07-25 10:52:41