folgendes Problem beschäftigt mich schon den ganzen Tag und ich komme einfach nicht zum Ziel, habe aber leider enormen Projektterminstress!
Es geht um einen Rootserver, alle Webanwendungen dürfen nur über https also ssl erreichbar sein, die Verschlüsselung der Verbindung reicht alleine aber nicht aus, es soll unabhängig von allen darunter liegenden Authentifizierungen, welche zum Beispiel über PHP programmiert sind, eine weitere globale Sicherheitsinstanz hinzukommen, ich habe da an ssl Authentifizierung gedacht, also nur wenn man ein gewisses Zertifikat auf dem Rechner hat, kann man sich verbinden, ansonsten lässt der Server einen sowieso nicht hin...
[Alternativvorschläge nehme ich gerne an, aber die verschlüsselte Verbindung ist obligatorisch]
Langer Rede kurzer Sinn,
Apache, PHP usw. ist alles schon länger funktionsfähig, habe heute unter Sites-available eine neue ssl Seite angelegt und aktiviert, das ssl Modul funktioniert auch, mit dem normalen public Key, laut Vorgabe, gab es auch noch keine Probleme, hätte soweit alles gepasst, soviel dazu! Leider habe ich nirgendwo ein verwendbares Tutorial gefunden, wie man Apache-ssl spezieller einrichtet, überall wird nur die normale "Public CA" Methode beschrieben, also ein Zertifikat für alle, lediglich zum Verschlüssen der Verbindung... eben leider zu wenig für mich, bei mir sollen nur ganz bestimmte Leute überhaupt Zugriff bekommen
Was habe ich wie getan?
1. Zuerst habe ich mal ssl generell aktiviert, laut Anleitung http://wiki.ubuntuusers.de/Apache/SSL
(Es ist ein Ubuntu Server 10.04)
2. Im Anschluss daran, habe ich es mit dem public Key getestet, hat alles soweit gepasst, öffentliches https war möglich, worauf ich in
die apache site "ssl-website" in "sites-available" ging (hab die zuvor so genannt) und dann habe ich die Zertifikatdateien, laut vorherigem Tutorrial,
ausgetragen...
3.
Nun habe ich, wie in einem Apache-Buch beschrieben, diese Datei heruntergeladen http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz
Darin enthalten jeweils für "Root CA", "Server CA" und "Benutzer CA" eine sh zum erstellen und eine sh zum signieren, die erstellen dann einen Haufen Dateien, von crt bis key bis numerische .pem Einträge, wie gesagt, das Beispiel hab ich aus einem Apache Buch, in den SH Dateien, stehen die selben Befehle, wie in den meisten Tutorial, nur detailierter...
4.
Dann begann das große Herumprobieren, da ich kein Tutorial gefunden habe, welches genau das erklärte, was ich wollte und nach wie vor will und auch die "Apache Bibel", das Buch heißt echt so, nur die oberflächliche Methode, wie hier beschrieben http://wiki.ubuntuusers.de/Apache/SSL lieferte. Das mit dem http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz kam zwar auch vom Buch, aber komischerweise, wurde das Einbinden danach nicht mehr beschrieben.
5.
Am Anfang habe ich einfach wild herum versucht, auch mithilfe von http://www.apache-ssl.org/docs.html und ähnlichen Seiten, ausgetestet, was, wie, wo geschieht, einmal, ganz kurz, hat es mit der Authentifizierung funktioniert. Nach dem Aufrufen des Servers, über HTTPS kam ein PopUp, da stand, dass der Server folgendes Zertifikat anfordert, nach dem Absenden, wurde die Verbindung erfolgreich aufgebaut... Nach dem ich dann aber testweise, alle Benutzerbezogenen Zertifikate vom Server gelöscht hatte und auch den Apache neu gestartet hatte, die Verbindung aber per https immer noch funktionierte, wusste ich, das was nicht stimmt, also zurück zum Reißbrett ...
6.
Mittlerweile bin ich frustriert,
in der "ssl-website" Datei, für den Apache Server, steht neben der üblichen Angaben, zu Servername und Rootverzeichnis, dann nur noch der Befehl zum aktivieren der ssl Engine,
dann habe ich "SSLCertificateFile" und "SSLCertificateKeyFile" das Serverzertifikat (server.crt) und Serverschlüssel(server.key) zugewiesen! Apache hat das auch geschluckt!
(Komischerweise ging es mit der "01.pem"(Beinhaltet die Server CA) welche die sh-skripten von vorhin erzeugten nicht, hier kam "Fail" beim Apache-Neustart. Die crt und key, was ebenfalls erzeugt werden, passen dann aber wieder...)
# SSLCACertificateFile
# SSLCACertificatePath
Habe ich beide schon mit allen Varianten und Möglichkeiten durchprobiert, hier sollten meines Verständnisses nach, dann die Benutzer Zertifikate/Schlüssel zugewiesen werden, wobei mir "SSLCACertificateFile" lieber wäre, als " SSLCACertificatePath ", da mir das mit den symlinks unsympathisch ist.
Darunter habe ich halt noch
#SSLVerifyClient
auf require
#SSLVerifyDepth
auf 10
und dann noch das was von Haus aus dabei ist, mit der Übergabe der Variablen an die aufgerufenen Dateien (php, phtml usw) und das keepalive Zeug, für den ie 6 und darunter...
Gesetzt habe ich also momentan
- Code: Select all
SSLEnable on (Diesen Wert habe ich jetzt aus dem Kopf raus, bin grad nicht im Büro, war aber schon vorgegeben...)
SSLCertificateFile Pfad/server.crt
SSLCertificateKeyFile Pfad/server.key
SSLCACertificateFile Keine Ahnung welches der 3 userspezifischen Dateien ich nehmen soll crt, key oder pem, keines von allem hat gepasst...
#SSLCACertificatePath
SSLVerifyClient require
Auf jeden Fall, kommt egal was ich mache immer das hier, beim Aufrufen des Servers
- Code: Select all
Fehler: Gesicherte Verbindung fehlgeschlagen
Ein Fehler ist während einer Verbindung mit www.innerebner.net aufgetreten.
Die SSL-Gegenstelle konnte keinen akzeptablen Satz an Sicherheitsparametern aushandeln.
(Fehlercode: ssl_error_handshake_failure_alert)
* Die Website kann nicht angezeigt werden, da die Authentizität der erhaltenen Daten nicht verifiziert werden konnte.
* Kontaktieren Sie bitte den Inhaber der Website, um ihn über dieses Problem zu informieren. Alternativ können Sie auch die Funktion im Hilfe-Menü verwenden, um diese Website als fehlerhaft zu melden.
Ich glaub der Browser weiß nicht mal dass er ein Zertifikat senden soll, ach ja, bevor ichs vergesse, im Firefox hab ich natürlich auch schon alles mögliche an Zertifikaten eingetragen, gelöscht und Kombinationen durchprobiert, von user@mail.xxx.p12 bis hin zu allen Zertifikaten (Name absichtlich verändert), nicht dass ihr denkt, der Idiot trag kein Zertifikat ein und wunder sich dass nix passiert
Bitte dringend um detaillierte Hilfe, hätte auch nix gegen ausführliche Step by Step Anleitungen, danke Euch im Voraus
liebe Grüße
skynet