nginx: TLS-Authentifizierung & Autorisierung
Auch wenn dies wahrscheinlich die sicherste Art der Authentifizierung ist, wird sie von vielen Clients nicht unterstützt. Außerdem kann die Konfiguration von Client-Zertifikaten für die Benutzer schwer zu bewerkstelligen sein.
Dieser Authentifizierungsmechanismus wird für die Kommunikation von Maschine zu Maschine und für erfahrene Benutzer empfohlen.
Hintergrundinformationen
Die TLS-Authentifizierung erfolgt beim Aufbau der HTTPS-Verbindung und kann aus diesem Grund nicht pro Verzeichnis konfiguriert werden (diese Informationen sind noch nicht empfangen worden). Wenn Sie diesen Authentifizierungstyp in einer benutzerdefinierten Anwendung verwenden möchten, konfiguriert das nginx-Plugin nginx so, dass es Ihnen die erforderlichen Informationen wie den CN sendet).
Konfiguration
Zunächst einmal benötigen Sie eine CA, ein Client- und ein Server-Zertifikat.
Bitte erstellen Sie es wie in Einrichtung SSL VPN Road Warrior beschrieben. Wenn Sie möchten, dass sich Ihre VPN-Benutzer mit dem gleichen Zertifikat an Ihrer Anwendung anmelden können, können Sie die gleiche CA verwenden.
Wählen Sie als Nächstes die CA, das Zertifikat und wählen Sie on als für die Client-Validierung. Damit wird jede Verbindung durch einen Client, der kein gültiges Zertifikat hat, abgelehnt.
Testen
curl https://192.168.1.1:444/file.txt --cacert ../MySchulrouter PlusCA.crt
<html>
<head><title>400 No required SSL certificate was sent</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>No required SSL certificate was sent</center>
<hr><center>nginx</center>
</body>
</html>
curl https://192.168.1.1:444/file.txt --cert ../nginx_client_test_cert.crt --key ../nginx_client_test_cert.key --cacert ../MySchulrouter PlusCA.crt
Hello World