Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Owin Twitter登录-根据验证过程,远程证书无效_.net_Asp.net Mvc_Twitter_Twitter Oauth_Owin - Fatal编程技术网

.net Owin Twitter登录-根据验证过程,远程证书无效

.net Owin Twitter登录-根据验证过程,远程证书无效,.net,asp.net-mvc,twitter,twitter-oauth,owin,.net,Asp.net Mvc,Twitter,Twitter Oauth,Owin,我最近在尝试使用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(

我最近在尝试使用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
最近某些证书必须已更改,现在指纹不再匹配

请在
Startup.Auth.cs
中的Twitter身份验证选项中添加“VeriSign Class 3 Public Primary Certification Authority-G5”证书的新指纹(适用于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
    })
});

关闭小提琴手。

不知何故,Fiddler web调试器弄乱了Twitter的Oauth。

仅出于测试目的(!)还可以设置

options.BackchannelCertificateValidator = null;
并添加到您的Global.asax应用程序\u Start:

ServicePointManager.ServerCertificateValidationCallback = delegate 
{ 
    return true; 
};

要总结并保存通过评论挖掘的用户,请查看以下最新配置:

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。

我遇到了这个问题,我在上面的帖子中看到了另一条评论中提到的401(未经授权)错误

我转到我的Twitter开发帐户,取消选中了一个标题为“启用回调锁定”的框。点击save,点击F5,它就工作了


所以上面的代码对我有用。如果你得到了401,请仔细检查你的Twitter帐户中的复选框

DigiCert SHA2高保证服务器C‎值“5168FF90AF0207753CCD9656462A212B859723B”似乎无效。新值为“01C3968ACDBD57AE7DFAFF9552311608CF23A9F9”。有效期为2016年6月28日至2019年9月19日。我在Chrome中找到它,然后点击地址栏中的挂锁查看证书。

对我来说,只需将Microsoft.Owin.Security.Twitter更新到3.1.0版,就可以修复它,即使没有添加指纹

我也有同样的问题,我已经在我的Twitter应用程序中更新了回调URL


添加默认URL

不知道,但我从昨天开始就得到了它。你甚至试过创建一个新的MVC5项目,添加twitter密钥,但都失败了。你试过用谷歌搜索那些错误消息吗?我看到许多与asp.net相关的页面都谈到了这两个错误。我不得不将“CertificateThumbprintValidator”更改为“CertificateThumbprintValidator”,并添加39A55D933676616E73A761DFA16A7E59CDE66FAD-Symantec Class 3安全服务器CA-G4-现在我可以回到我应该做的事情了!是的,谢谢你。。。我已经创建了自己的证书验证器来识别问题。我将更新帖子。再次发生-必须添加4eb6d578499b1ccf5f581ead56be3d9b6744a5e5-VeriSign Class 3 Primary CA-G5任何人都知道这是否也可以通过在web服务器上安装VeriSign根证书来修复,再次发生,我看到digicert。“5168FF90AF0207753CCD9656462A212B859723B”//DigiCert SHA2高保证服务器C‎“B13EC36903F8BF4701D498261A0802EF63642BC3”//DigiCert高保证EV根独木舟证书已从Katana 3.1中删除,因此在将来不会继续中断。因此,再次向这个懒惰的开发人员提供帮助!有人知道Twitter是否会宣布他们将要更改指纹吗?或者我们总是要等待它崩溃吗?我得到的响应状态代码并不表示成功:401(需要授权)。在我添加反向通道后,我编辑了这个答案,包括Tim对Symantec Class 3 EV SSL CA-G3的发现。我很想了解你们是如何解决需要添加哪些证书的问题的?我正在使用Fiddler并启用https解密,但我不知道你是如何找到丢失的证书的?为了解决401(未经授权)错误将回调URL从*/signin twitter/更改为*/signin twitter,末尾不带反斜杠查看chrome上的证书详细信息显示5168FF90AF0207753CCD9656462A212B859723B是权限密钥标识符(),01C3968ACDBD57AE7DFAFF9552311608CF23A9F9是主题密钥标识符()。我不知道你为什么认为5168FF90AF0207753CCD9656462A212B859723B无效。我再看一眼证书,你就知道api.twitter.com有一个新的主题密钥标识符,值为01C3968ACDBD57AE7DFAFF9552311608CF23A9F9()