meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mariadb_zertifikatbasiertes_anmeldesystem [31.01.2016 07:35] 192.168.126.108mariadb_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 ''HOME''-Verzeichnisse der Benutzer kopiert. 
- 
-Die Benutzer werden in der Datenbank angelegt als ''<user>@192.168.7.%'', sodass sie sich nur noch anmelden können, wenn sie sich im Hausnetz befinden, was die Sicherheit erhöht. 
- 
-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 ''/volume1/system/certs'' angelegt. 
- 
-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. 
- 
-<code> 
-cd /volume1/system 
-[ -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 '/C=CH/ST=Zug/L=Zug/O=KSCO Investment Management/CN=ksco' 
-openssl req -new -x509 -nodes -sha256 -days 3600 -key ca-key.pem -out ca-cert2.pem -subj '/C=CH/ST=Zug/L=Zug/O=KSCO Investment Management/CN=ksco' 
-openssl genrsa 2048 > server06-key.pem  
-openssl req -key server06-key.pem -new -sha1 -out server06-req.csr -subj '/C=CH/ST=Zug/L=Zug/O=KSCO Investment Management/OU=ksdb/CN=server06' 
-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 '/C=CH/ST=Zug/L=Zug/O=KSCO Investment Management/OU=ksdb/CN=server06' 
-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 /volume1/transfer/software/ksdb/ 
-cp ca.p12 /volume1/transfer/software/ksdb/ 
- 
- 
-</code> 
- 
-==== Serverzertifikat in MariaDB installieren ==== 
-  
-Hierzu werden der Konfigurationsdatei ''/var/packages/MariaDB/etc/mysql/my.cnf'' die folgenden Zeilen angefügt: 
-<code> 
-ssl 
-ssl-ca = /volume1/system/certs/ca-cert.pem 
-ssl-cert = /volume1/system/certs/server06-cert.pem 
-ssl-key = /volume1/system/certs/server06-key.pem 
-</code> 
- 
-Nun wird MariaDB neu gestartet mit dem Befehl: 
-<code> 
-/usr/share/mysql/mysql.server restart 
-</code> 
- 
-==== Server-Zertifikat im Web-Server installieren ==== 
-Auf der Diskstation kann unter Systemsteuerung - Sicherheit das Zertifikat importiert werden: 
-  * Zertifikat: ''/volume1/system/certs/server06-cert2.pem'' 
-  * Schlüssel: ''/volume1/system/certs/server06-key.pem'' 
-  * CA: ''/volume1/system/certs/ca-cert2.pem'' 
- 
- 
-==== 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 ''/volume1/web/ksweb/.htaccess''  
-<code> 
-SSLVerifyClient optional_no_ca 
-SSLVerifyDepth 5 
-SSLOptions +StdEnvVars 
-</code> 
-  * in der MariaDB muss ein Benutzer angelegt sein mit '<benutzer>'@'localhost' mit speziellem Passwort. 
-  * beim Benutzer muss das CA-Zertifikat und Client-Zertifikat importiert sein 
- 
- 
-==== Benutzer-Zertifikate erstellen ==== 
-Das Benutzerzertifikat wird mit dem Script ''/volume1/system/create_user_cert.sh'' erstellt. Das Script erstellt im ''HOME''-Verzeichnis ein Unterverzeichnis ''ksdb'' und legt die folgenden Dateien an: 
-  * ''key.pem''     die Schlüssel-Datei 
-  * ''cert.pem''  -   das Zertifikat in PEM-Form für die Datenbank-Anmeldung 
-  * ''<user>-cert.p12''  -  das Zertifikat zum Import in den Browser fürs KSWEB 
- 
-==== Benutzerzertifikate installieren ==== 
-Für den Zugang zur Datenbank regelt das Start-Script ''ksdb.vbs'' bereits die Installation - es muss nichts mehr gemacht werden. Für den Zugriff auf die KSWEB-Seiten sind auf dem Arbeitsplatzrechner folgende Schritte auszuführen: 
-  * Doppelklick auf die Datei ''\\server06\transfer\software\ksdb\ca.p12'' 
-  * Als Speicherort (Store Location) ist ''Local Machine'' zu wählen 
-  * Passwort ist leer 
-  * Das Zertifikat ist explizit in den Store ''Trusted Root Certification Authorities'' aufzunehmen 
-  * Doppelklick auf die Datei ''\\server06\home\ksdb\<user>-cert.p12'' 
-  * Als Speicherort (Store Location) ist ''Current user'' zu wählen 
-  * 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. 
-