Owin Twitterlogin – 根据validation程序,远程证书无效

我最近尝试使用twitterlogin时出现这个错误 – 为什么?

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 

由于开放源代码的强大function,我们可以看到,Katana项目中的twitter证书的指纹已经被编码。

 Microsoft.Owin.Security.Twitter.TwitterAuthenticationOptions 

最近一些证书必须更改,现在指纹不再匹配。

请在您的Startup.Auth.cs (适用于MVC用户)的Twitter身份validation选项中添加一个新的“VeriSign Class 3公共主要authentication机构 – G5”证书的Startup.Auth.cs

从默认更改:

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

总结和保存挖掘评论的人,这里最新的configuration:

 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。

关掉提琴手。

不知何故,小提琴手networkingdebugging器搞砸了Twitter的Oauth。

仅用于testing目的(!)也可以设置

 options.BackchannelCertificateValidator = null; 

并添加到您的Global.asax Application_Start:

 ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 

DigiCert SHA2高保证服务器C值“5168FF90AF0207753CCCD9656462A212B859723B”似乎不是有效的。 新值是“01C3968ACDBD57AE7DFAFF9552311608CF23A9F9”。 有效期从2016年6月28日至9月19日。 我在Chrome浏览器中find了https://api.twitter.com/ ,然后点击地址栏中的挂锁查看证书。

我有这个确切的问题,我跟着上面的post,我得到了另一个评论中提到的401(未经授权)的错误。

我去了我的Twitter开发账户,并取消选中一个名为“启用回拨locking”的框。 点击保存,按F5,它的工作。

所以上面的代码为我工作。 如果你得到一个401双重检查您的Twitter帐户的checkbox。

对我来说,只要将Microsoft.Owin.Security.Twitter更新到版本3.1.0即可,即使不添加指纹!