Не удалось создать безопасный канал SSL/TLS для Facebook

У меня был социальный вход с использованием Facebook, реализованный в Production в течение некоторого времени. По состоянию на это утро это больше не работает для меня. Я получаю ту же ошибку в dev (у которого нет 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

Кто-нибудь еще видел это? Мой логин Google продолжает работать просто отлично.

4 ответа

Решение

Как сказал Айги, это связано с тем, что Facebook отключил SSLv3 из-за эксплойта POODLE.

У меня было то же самое, что случилось с приложением, которое подключается к Twitter. Я исправил это, добавив эту строку кода для использования TLS. Я не уверен, что это лучшее решение, но пока оно работает.

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

РЕДАКТИРОВАТЬ: забыл упомянуть об этом, но я добавил эту строку в Application_Start global.asax

У нас та же проблема в живой среде. Все аккаунты были изменены одновременно:

  • facebook
  • Twiter
  • LinkedIn

Для твиттера, я думаю, нужно только обновить Twitterizer.dll или последнюю стороннюю библиотеку Twitter и проверить изменения кода.

для LinkedIn было бы интересно использовать OAuthv2 (или последний, я не помню релиз версии), но я помню, что это очень очень трудно решить.

Для Facebook то же самое, измените SDK на последний и заново изучите изменения библиотеки.

15 октября 2014 года было запланировано на август, что это должно было произойти.

С уважением,

Isy

Почему установка SecurityProtocol на TLS будет решением? В любом случае.net должен договориться о максимально возможном протоколе с сервером, и если TLS - вариант, предпочтительнее, чем SSL, не так ли?!

Facebook прекратил поддержку SSL 3.0 через API платформы Facebook и API обновлений в реальном времени после того, как 14 октября 2014 года была публично обнаружена уязвимость в протоколе ( http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiting-ssl-30.html).

Старые версии PHP SDK (Facebook PHP SDK 3.1.1 и более ранние), которые использовали SSL 3.0, больше не будут работать.

Все разработчики должны обновить до SDK Facebook 3.2.3 или выше. SDK 4.0.0 рекомендуется.

Другие вопросы по тегам