2014-10-15 11 views
9

Ich habe eine soziale Anmeldung über Facebook erhalten, die seit einiger Zeit in der Produktion implementiert ist. Ab heute Morgen funktioniert es nicht mehr für mich. Ich erhalte den gleichen Fehler in dev (der kein SSL hat) und in der Produktion, die auf Azure-Websites gehostet wird und SSL verwendet.Sicherer SSL/TLS-Kanal für Facebook konnte nicht erstellt werden

Hier ist der Fehler ich sehe:

[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

Wer sonst das sah? Mein Google-Login funktioniert weiterhin einwandfrei.

+0

Verwenden Sie immer noch SSL3? SSL3 wurde auf allen Endpunkten von Facebook deaktiviert, da http://security.stackexchange.com/questions/70719/ssl3-poodle-vulnerability – Igy

+0

Sieht aus wie ich war. Ich habe versucht, was Mikejh99 vorgeschlagen, aber immer noch die gleiche Ausnahme. –

Antwort

12

Wie Igy sagte, liegt dies daran, dass SSLv3 wegen des POODLE-Exploits von Facebook deaktiviert wurde.

Ich hatte das gleiche passiert mit einer App, die zu Twitter verbindet. Ich habe es behoben, indem ich diese Codezeile hinzugefügt habe, um TLS zu verwenden. Ich bin mir nicht sicher, ob das die beste Lösung ist, aber es funktioniert jetzt.

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

EDIT: Vergessen zu erwähnen, aber ich fügte hinzu, dass Zeile Application_Start von global.asax

+0

Danke für die Bearbeitung, das hat geholfen. Leider hat es nicht funktioniert. Ich stelle einen Haltepunkt ein, um sicherzustellen, dass die Anwendung tatsächlich neu gestartet wird und dass sie geschlagen wird, leider bekomme ich immer noch dieselbe Ausnahme. –

+0

Für ein gutes Maß habe ich auch 'Tsl' und' Tsl11' versucht. Gleiches Ergebnis. –

+0

Diese Zeile Code vor jeder Web-Anfrage mit https, arbeitete für mich. Alle facebook, linkedin und twitter connect/post waren betroffen – Rifaj

0

Facebook-Unterstützung für SSL 3.0 über das Facebook-Plattform-API und die Real-Time Updates API gesunken ist, nachdem Eine Schwachstelle im Protokoll wurde am 14. Oktober 2014 öffentlich enthüllt (http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiting-ssl-30.html).

Alte Versionen des PHP SDK (Facebook PHP SDK 3.1.1 und älter), die SSL 3.0 verwendet haben, funktionieren nun nicht mehr.

Alle Entwickler sollten auf Facebook SDK 3.2.3 oder höher upgraden. SDK 4.0.0 wird empfohlen.

0

Wir haben das gleiche Problem in einer Live-Umgebung. Alle Konten wurden zur gleichen Zeit geändert:

  • Facebook
  • Twiter
  • LinkedIn

Für twitter denke, ich wäre nur erforderlich Twitterizer.dll oder die neueste 3rd-Party-Twitter-Bibliothek zu aktualisieren und überprüfen Sie die Codeänderungen.

für LinkedIn wäre es interessant, OAuthv2 zu verwenden (oder die letzte, ich erinnere mich nicht an die Version), aber ich erinnere mich, es ist sehr, sehr schwer zu lösen.

Für Facebook das gleiche, ändern Sie das SDK zum letzten und lernen Sie die Bibliothek Änderungen neu.

Am 15. Oktober 2014 war geplant, dass dies passieren würde.

Grüßen,

Isy

0

warum die SecurityProtocol TLS wäre eine Lösung Einstellung sein? .net sollte sowieso das höchstmögliche Protokoll mit dem Server aushandeln und wenn TLS eine Option ist, die man über SSL bevorzugen sollte, oder?

+0

Ja, aber ich hatte eine Third-Party-Bibliothek, die den Standard überschrieb und spezifisch nur SSL anforderte. –