Frage

ich Setup meine eigenen OpenID-Provider auf meinem persönlichen Server, und fügte hinzu, eine Umleitung zu https in meiner Apache-Konfigurationsdatei. Wenn er nicht über eine sichere Verbindung (wenn ich die Umleitung deaktivieren) kann ich in feinen einzuloggen, aber mit der Umleitung kann ich nicht mit dieser Fehlermeldung melden Sie sich an:

Die zugrunde liegende Verbindung wurde geschlossen:. Konnte keine Vertrauensstellung für den sicheren SSL / TLS-Kanal einzurichten

Ich vermute, dass dies, weil ich ein selbst signiertes Zertifikat verwenden.

Kann jemand bestätigen, wenn das selbst signiertes Zertifikat ist das Problem? Wenn nicht hat jemand irgendwelche Ideen, was das Problem ist?

War es hilfreich?

Lösung

Der primäre Vorteil von SSL für Ihre OpenID-URL zu verwenden, ist, dass es der vertrauende Partei einen Mechanismus gibt, um herauszufinden, ob DNS manipuliert wurde. Es ist unmöglich für die vertrauende Partei zu sagen, ob eine OpenID-URL mit einem selbstsignierten Zertifikat kompromittiert wurde.

Es gibt noch andere Vorteile, die Sie verwenden SSL erhalten auf Ihrem Provider Endpunkt-URL (einfacher Vereinigungen zu gründen, kein Abhören der Erweiterungsdaten), die immer noch halten würde, wenn Sie ein selbst signiertes Zertifikat verwendet, aber ich würde diejenigen berücksichtigen sein Sekundär.

Andere Tipps

OpenID wird in einem Redirect-transparent gestaltet. Solange die notwendigen Schlüssel / Wert-Paare erhalten an jedem umleiten, entweder durch GET oder POST, wird alles korrekt.

Die einfachste Lösung Kompatibilität mit den Konsumenten zu erreichen, die mit selbstsignierten nicht funktionieren Zertifikate ist eine nicht verschlüsselte Endpunkt zu verwenden, die checkid_immediate und checkid_setup Nachrichten zu einem verschlüsselten eine umleitet.

Tun Sie dies in Ihrem Server-Code ist einfacher als mit Web-Umleitungen Server wie die früheren leichter mit POST-Anfragen umgehen kann, aber auch Code zusammen zu halten. Darüber hinaus können Sie den gleichen Endpunkt verwenden, um alle OpenID-Operationen zu behandeln, unabhängig davon, ob oder nicht, sollten sie über SSL bedient werden, solange eine angemessene Kontrolle durchgeführt werden.

Zum Beispiel in PHP, kann die Umleitung so einfach wie:

// Redirect OpenID authentication requests to https:// of same URL
// Assuming valid OpenID operation over GET
if (!isset($_SERVER['HTTPS']) &&
        ($_GET['openid_mode'] == 'checkid_immediate' ||
         $_GET['openid_mode'] == 'checkid_setup'))
    http_redirect("https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}");

Wie der openid.return_to Wert gegen einen einfachen HTTP-Endpunkt erzeugt wurde, soweit der Verbraucher betrifft, so ist es nur mit einem nicht-verschlüsselten Server handelt. Unter der Annahme, richtigen OpenID 2.0 Betrieb mit Sitzungen und Nonces, was auch immer Informationen zwischen dem Verbraucher und Ihren Sever weitergegeben sollte nicht verwertbare Informationen offenbaren. Operationen zwischen Ihrem Browser und dem OpenID-Server, der ausnutzbar sind (Passwort-Snooping oder Session-Cookie-Hijacking) wird über einen verschlüsselten Kanal erfolgen.

Abgesehen von Lauschern zu halten heraus, Authentifizierungsoperationen mit ausgeführt werden über SSL können Sie die secure HTTP-Cookie-Flag verwenden. Dies fügt noch eine weitere Schutzschicht für checkid_immediate Operationen, sollten Sie wollen es ermöglichen.

(Disclaimer: Ich bin neu zu OpenID, so könnte ich hier falsch sein.) Die Kommunikation zwischen dem Open ID Consumer (zB Stackoverflow) und den Open-ID-Provider (Ihr Server) nicht HTTPS erforderlich - es wird funktioniert genauso gut und genauso sicher über einfaches HTTP. Was Sie tun müssen, um Ihren Server zu konfigurieren, dass nur auf HTTPS zu wechseln, wenn es Ihnen Ihre Login-Seite zeigt. In diesem Fall muss nur Ihr Browser selbst mit dem selbst signierten Zertifikat kümmern. Sie könnten das Zertifikat auf Ihren PC importieren und alles wird so sicher wie mit, sagen wir, Zertifikat-Verisign ausgegeben.

Es klingt wie es. Der Kunde Ihres OpenID-Server vertraut nicht der Stammzertifizierungsstelle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top