无法为Facebook创建SSL/TLS安全通道

本文关键字:TLS 安全 通道 SSL 创建 Facebook | 更新日期: 2023-09-27 18:26:34

我在生产中使用Facebook进行社交登录已经有一段时间了。截至今天上午,它不再适用于我。我在开发(没有SSL)和生产(托管在Azure网站上,使用SSL)中都遇到了同样的错误。

这是我看到的错误:

[WebException: The request was aborted: Could not create SSL/TLS secure channel.] System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) +283 System.Net.WebClient.DownloadString(Uri address) +100 DotNetOpenAuth.AspNet.Clients.FacebookClient.QueryAccessToken(Uri returnUrl, String authorizationCode) +350 DotNetOpenAuth.AspNet.Clients.OAuth2Client.VerifyAuthentication(HttpContextBase context, Uri returnPageUrl) +202 DotNetOpenAuth.AspNet.OpenAuthSecurityManager.VerifyAuthentication(String returnUrl) +411 Microsoft.Web.WebPages.OAuth.OAuthWebSecurity.VerifyAuthenticationCore(HttpContextBase context, String returnUrl) +189 Microsoft.Web.WebPages.OAuth.OAuthWebSecurity.VerifyAuthentication(String returnUrl) +139

还有人看到这个吗?我的谷歌登录继续正常工作。

无法为Facebook创建SSL/TLS安全通道

正如Igy所说,这是由于SSLv3因POODLE漏洞而被Facebook禁用。

我在一个连接到Twitter的应用程序上也遇到了同样的事情。我通过添加这行代码来使用TLS来修复它。我不确定这是否是最好的解决方案,但目前有效。

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12

编辑:忘记提到这一点,但我在global.asax 的Application_Start中添加了这一行

Facebook在2014年10月14日公开披露协议中的漏洞后,放弃了对Facebook平台API和API实时更新SSL 3.0的支持(http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiting-ssl-30.html)。

使用SSL 3.0的旧版本的PHP SDK(Facebook PHP SDK 3.1.1及更早版本)现在将不再工作。

所有开发者都应该升级到Facebook SDK 3.2.3或更高版本。建议使用SDK 4.0.0。

  • PHP SDK 3.2.3:https://developers.facebook.com/docs/reference/php/3.2.3
  • PHP-SDK 4.0.0:https://developers.facebook.com/docs/reference/php/4.0.0
  • 开发文档:https://developers.facebook.com/docs/apps/changelog#disable-ssl-v30

我们在生活环境中也遇到同样的问题。所有账户同时更改:

  • Facebook
  • Twiter
  • 领英

对于推特,我认为只需要更新Twitterizer.dll或最新的第三方推特库,并检查代码更改。

对于领英来说,使用OAuthv2(或者最后一个,我不记得版本发布了)会很有趣,但我记得它很难解决。

对于Facebook,同样,将SDK更改为最后一个,然后重新学习库的更改。

2014年10月15日计划在8月进行。

问候,

Isy

为什么将SecurityProtocol设置为TLS是一个解决方案。net无论如何都应该与服务器协商尽可能高的协议,如果TLS是一个比SSL更喜欢的选项,不是吗?!