meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| mariadb_zertifikatbasiertes_anmeldesystem [11.02.2016 18:42] – 192.168.126.108 | mariadb_zertifikatbasiertes_anmeldesystem [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== MariaDB zertifikatbasiertes Anmeldesystem ====== | ||
| - | |||
| - | |||
| - | Das ab 2016 eingeführte Anmeldesystem an die KSDB basiert auf einer Benutzerauthorisierung durch Client-Zertifikate. Diese Zertifikate werden auf dem Server erstellt und in die '' | ||
| - | |||
| - | Die Benutzer werden in der Datenbank angelegt als ''< | ||
| - | |||
| - | Der Prozess gliedert sich nun in die Blöcke | ||
| - | * Server-Zertifikate erstellen | ||
| - | * Client-Zertifikate erstellen und Benutzer anlegen | ||
| - | * Anmeldeverfahren anpassen | ||
| - | |||
| - | ==== Server-Zertifikate erstellen ==== | ||
| - | Auf dem Server benötigen wir zwei Zertifikate. Das erste ist ein sogenanntes **CA-Zertifikat** und bildet die Authorisierungs-Instanz. Die Zertifikate werden im Verzeichnis ''/ | ||
| - | |||
| - | Leider verlangt MariaDB, dass das Server-SSL-Zertifikat noch mit der alten Stufe SHA1 verschlüsselt ist. Dieses kann aber nicht mehr für die Web-Authentifizierung verwendet werden, da die Browser eine neuere Technologie verlangen. Deshalb müssen zwei Server-Zertifikate erstellt werden. Als Client-Zertifikat muss nur eines mit SHA256-Verschlüsselung erstellt werden. | ||
| - | |||
| - | < | ||
| - | cd / | ||
| - | [ -e certs ] && rm -Rf certs | ||
| - | mkdir certs | ||
| - | cd certs | ||
| - | openssl genrsa 2048 > ca-key.pem | ||
| - | openssl req -new -x509 -nodes -sha1 -days 3600 -key ca-key.pem -out ca-cert.pem -subj '/ | ||
| - | openssl req -new -x509 -nodes -sha256 -days 3600 -key ca-key.pem -out ca-cert2.pem -subj '/ | ||
| - | openssl genrsa 2048 > server06-key.pem | ||
| - | openssl req -key server06-key.pem -new -sha1 -out server06-req.csr -subj '/ | ||
| - | openssl x509 -req -in server06-req.csr -days 3600 -sha1 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server06-cert.pem | ||
| - | openssl req -key server06-key.pem -new -sha256 -out server06-req2.csr -subj '/ | ||
| - | |||
| - | openssl genrsa 2048 > server07-key.pem | ||
| - | openssl req -key server07-key.pem -new -sha1 -out server07-req.csr -subj '/ | ||
| - | openssl x509 -req -in server07-req.csr -days 3600 -sha1 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server07-cert.pem | ||
| - | openssl req -key server07-key.pem -new -sha256 -out server07-req2.csr -subj '/ | ||
| - | openssl x509 -req -in server07-req2.csr -days 3600 -sha256 -CA ca-cert2.pem -CAkey ca-key.pem -set_serial 01 -out server07-cert2.pem | ||
| - | |||
| - | openssl x509 -req -in server06-req2.csr -days 3600 -sha256 -CA ca-cert2.pem -CAkey ca-key.pem -set_serial 01 -out server06-cert2.pem | ||
| - | openssl pkcs12 -export -in ca-cert2.pem -inkey ca-key.pem -out ca.p12 -passout pass: | ||
| - | cp ca-cert2.pem / | ||
| - | cp ca.p12 / | ||
| - | |||
| - | |||
| - | </ | ||
| - | |||
| - | ==== Serverzertifikat in MariaDB installieren ==== | ||
| - | |||
| - | Hierzu werden der Konfigurationsdatei ''/ | ||
| - | < | ||
| - | ssl | ||
| - | ssl-ca = / | ||
| - | ssl-cert = / | ||
| - | ssl-key = / | ||
| - | </ | ||
| - | |||
| - | Nun wird MariaDB neu gestartet mit dem Befehl: | ||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | ==== Server-Zertifikat im Web-Server installieren ==== | ||
| - | Auf der Diskstation kann unter Systemsteuerung - Sicherheit das Zertifikat importiert werden: | ||
| - | * Zertifikat: ''/ | ||
| - | * Schlüssel: ''/ | ||
| - | * CA: ''/ | ||
| - | |||
| - | |||
| - | ==== Client-Zertifikat in der Webseite verlangen ==== | ||
| - | Damit im KSWeb die PHP-Scripts eine Anmeldung an die Datenbank durchführen können, wird folgendes benötigt: | ||
| - | * im File ''/ | ||
| - | < | ||
| - | SSLVerifyClient optional_no_ca | ||
| - | SSLVerifyDepth 5 | ||
| - | SSLOptions +StdEnvVars | ||
| - | </ | ||
| - | * in der MariaDB muss ein Benutzer angelegt sein mit '< | ||
| - | * beim Benutzer muss das CA-Zertifikat und Client-Zertifikat importiert sein | ||
| - | |||
| - | |||
| - | ==== Benutzer-Zertifikate erstellen ==== | ||
| - | Das Benutzerzertifikat wird mit dem Script ''/ | ||
| - | * '' | ||
| - | * '' | ||
| - | * ''< | ||
| - | |||
| - | ==== Benutzerzertifikate installieren ==== | ||
| - | Für den Zugang zur Datenbank regelt das Start-Script '' | ||
| - | * Doppelklick auf die Datei '' | ||
| - | * Als Speicherort (Store Location) ist '' | ||
| - | * Passwort ist leer | ||
| - | * Das Zertifikat ist explizit in den Store '' | ||
| - | * Doppelklick auf die Datei '' | ||
| - | * Als Speicherort (Store Location) ist '' | ||
| - | * Passwort ist leer | ||
| - | * Das Zertifikat kann automatisch gespeichert werden | ||
| - | |||
| - | Beim Aufruf einer Seite im KSWEB verlangt der Browser ein Zertifikat. Der Browser wird allerdings bereits das soeben installierte Zertifikat vorschlagen. | ||
| - | |||