Dot-Net

Owin Twitter登錄-根據驗證程序遠端證書無效

  • July 29, 2014

我最近在嘗試使用 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

由於開源的力量,我們可以看到 Twitter 證書的指紋已在 Katana 項目中編碼。

Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions

最近某些證書必須已更改,現在指紋不再匹配。

請將“VeriSign Class 3 Public Primary Certification Authority - G5”證書的新指紋添加到您Startup.Auth.cs(針對 MVC 使用者)中的 Twitter 身份驗證選項。

從預設值更改:

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

引用自:https://stackoverflow.com/questions/25011890