Inicio de sesión de Owin Twitter: el certificado remoto no es válido según el procedimiento de validación

StackOverflow https://stackoverflow.com//questions/25011890

Pregunta

Comencé a recibir este error recientemente al intentar iniciar sesión usando Twitter. ¿Alguna idea de por qué?

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
¿Fue útil?

Solución

Gracias al poder del código abierto podemos ver que las huellas digitales de los certificados de Twitter han sido codificadas en el Proyecto Katana.

Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions

Recientemente algunos certificados debieron haber cambiado y ahora las huellas digitales ya no coinciden.

Agregue una nueva huella digital para el certificado "VeriSign Class 3 Public Primary Certification Authority - G5" a sus Opciones de autenticación de Twitter en su Startup.Auth.cs (para usuarios de MVC).

Cambiar del valor predeterminado:

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

Utilizar esta:

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

Otros consejos

Para resumir y guardar a las personas que cavan a través de los comentarios, aquí la última configuración:

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

Todos los créditos en @michaellake y @kennethito.

Desactivar Fiddler.

De alguna manera, el depurador de la Web Fiddler se ensucia el OAUTH para Twitter.

Solo para fines de prueba (!) También es posible establecer el

options.BackchannelCertificateValidator = null;

y agregue a su aplicación global.asax_start:

ServicePointManager.ServerCertificateValidationCallback = delegate 
{ 
    return true; 
};

El servidor de alta garantía de Digicert SHA2 C A un valor de "5168FF90AF0207753CCCD9656462A212B859723B" no parece ser válido.El nuevo valor es "01c3968acdbd57ae7dfaff9552311608cf23a9f9".Es válido desde el 28/06/2016 hasta el 9/19/2019.Lo encontré yendo a https://api.twitter.com/ en Chrome, luego haciendo clic en el candadoen la barra de direcciones para ver el certificado.

Tuve este problema exacto, seguí el poste anterior y obtuve el error 401 (no autorizado) mencionado en otro comentario.

Fui a mi cuenta de Twitter Dev y sin marcar una casilla titulada: "Habilitar el bloqueo de devolución de llamada".Clicked Guardar, pulsa F5 y funcionó.

Entonces, el código anterior funcionó para mí.Si obtiene una cuenta doble de 401, su cuenta de Twitter para la casilla de verificación.

Para mi solo actualizando Microsoft.Owin.Security.Twitter A la versión 3.1.0 se solucionó, ¡incluso sin agregar las huellas digitales!

Tuve el mismo problema, y he actualizado la URL de devolución de llamada en mi aplicación de Twitter.

Agregando la URL predeterminada https:// mywebsite / firstin-twitter

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top