Не удалось создать безопасный канал 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
У нас та же проблема в живой среде. Все аккаунты были изменены одновременно:
- Twiter
Для твиттера, я думаю, нужно только обновить 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 рекомендуется.
- 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