Public Key Authentifizierung oder ähnliches über HTTP / HTTPS?

31

Ist es möglich, Apache oder einen anderen Webserver für die Verwendung einer öffentlichen Schlüsselauthentifizierung zu konfigurieren?

Im Idealfall möchte ich den Benutzern den Zugriff auf eine Site ermöglichen, ohne dass ein Benutzername / Passwort erforderlich ist, vorausgesetzt, sie haben eine Schlüsseldatei (oder ähnliches) in ihrem Browser installiert und dieser Schlüssel ist "autorisiert". auf der Serverseite.

Ezzatron
quelle

Antworten:

17

Was Sie suchen, wird im Allgemeinen als gegenseitige Authentifizierung bezeichnet. Normalerweise gibt es ein Serverzertifikat für die "Serverauthentifizierung", dh, es überprüft die Identität des Servers gegenüber dem Client.

Beachten Sie, dass Sie bei der Verfolgung dieses Schemas eine zusätzliche Herausforderung bei der Zertifikatserneuerung für die Clients haben.

Hier ist ein Beispiel, wie es für ein Produkt gemacht wird:

Primer für gegenseitige Authentifizierung

Apache für SSL konfigurieren

Greg Askew
quelle
8

SSL ist die Authentifizierung mit öffentlichem Schlüssel. In den meisten Fällen wird es zur Authentifizierung der Identität des Remoteservers verwendet. Der Server zeigt ein Zertifikat an, das vom privaten Schlüssel einer Zertifizierungsstelle signiert ist, und Ihr Browser überprüft es anhand des öffentlichen Schlüssels der Behörde.

Es ist auch möglich, SSL zu verwenden, um die Identität des Clients zu authentifizieren. In diesem Fall konfigurieren Sie Ihren Browser so, dass beim Herstellen einer Verbindung zu einem Remoteserver ein Clientzertifikat angezeigt wird, und der Remoteserver authentifiziert das Zertifikat bei einer Behörde.

Dies ist alles relativ einfach und wird von den meisten Webservern gut unterstützt. In diesem Dokument wird das Einrichten mit Apache erläutert. Die SSLRequire- Anweisung erledigt den größten Teil des Lastaufwands für diese Art von Konfiguration.

larsks
quelle