Вход Owin Twitter - удаленный сертификат недействителен в соответствии с процедурой проверки

Я начал получать эту ошибку в последнее время при попытке входа в систему с помощью twitter - любая идея, почему?

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

Ответ 1

Благодаря силе открытого источника мы видим, что отпечатки для сертификатов twitter были закодированы в проекте Katana.

Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions

В последнее время некоторые сертификаты должны быть изменены, и теперь отпечатки больше не совпадают.

Пожалуйста, добавьте новую печать большого пальца для сертификата VeriSign Class 3 Public Primary Certification Authority - G5 в ваши настройки на Twitter в вашем Startup.Auth.cs (для пользователей MVC).

Измените значение по умолчанию:

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

Используйте это:

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

Ответ 2

Подводя итоги и сохраняем людей, копающих комментарии, здесь последняя конфигурация:

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

Все кредиты @MichaelLake и @KennethIto.

Ответ 3

Отключить Fiddler.

Как-то отладочный веб-отладчик Fiddler испортил Oauth для Twitter.

Ответ 4

Для целей тестирования (!) также можно установить

options.BackchannelCertificateValidator = null;

и добавьте в свой файл Global.asax Application_Start:

ServicePointManager.ServerCertificateValidationCallback = delegate 
{ 
    return true; 
};

Ответ 5

Сервер высокой уверенности DigiCert SHA2 C Значение "5168FF90AF0207753CCCD9656462A212B859723B", похоже, недействительно. Новое значение - "01C3968ACDBD57AE7DFAFF9552311608CF23A9F9". Он действует с 18.06.2012 до 9/19/2019. Я нашел его, перейдя в https://api.twitter.com/ в Chrome, затем нажав на замок в адресной строке, чтобы просмотреть сертификат.

Ответ 6

У меня была эта точная проблема, я следил за сообщением выше, и я получил ошибку 401 (несанкционированный), упомянутый в другом комментарии.

Я пошел в свою учетную запись Twitter и снял флажок под заголовком "Включить блокировку обратного вызова". Нажмите "Сохранить", нажмите F5, и он сработал.

Итак, приведенный выше код работал у меня. Если вы получите 401 двойную проверку своей учетной записи Twitter, установите флажок.

Ответ 7

Для меня просто обновление Microsoft.Owin.Security.Twitter до версии 3.1.0 исправлено, даже без добавления отпечатков!

Ответ 8

У меня возникла та же проблема, и я обновил URL-адрес обратного вызова в своем приложении Twitter.

Добавление URL по умолчанию https://mywebsite/signin-twitter