Mit Client-Zertifikat beim Web-Server authentifizieren

Status
Für weitere Antworten geschlossen.

fragnet

Benutzer
Mitglied seit
02. Feb 2014
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich mach hier einen neues Thema auf, weil ich mit der Konfiguration des apache nicht weiterkomme. Ich möchte mich beim Web-Server mit einem Client Zertifikat authentifizieren und habe dazu die Datei /etc/httpd/conf/extra/httpd-ssl.conf-sys geändert (das apache-Verzeichnis gibts anscheinend nicht mehr):
Die mit * gekennzeichneten Zeilen habe ich eingefügt

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /usr/syno/etc/ssl/ssl.crt/server.crt
SSLCertificateKeyFile /usr/syno/etc/ssl/ssl.key/server.key
* SSLVerifyClient require
* SSLVerifyDepth 1
* SSLOptions +StdEnvVars +ExportCertData
RewriteEngine on
RewriteRule ^/(.*)$ /usr/syno/synoman/redirect.cgi?5001
</VirtualHost>
</IfDefine>

Eigentlich müsste der Web-Server nach dem Neustart jetzt eine Fehlermeldung rausgeben, wenn ich ohne Clientzertifikat eine Seite vom Web-Server aufrufe?! Https Umleitung ist aktiviert und der Server gibt die Seiten ohne Fehlermeldung raus, obwohl ich im Browser keine Zertifikate installiert habe. Ist mir ein Räsel warum das nicht funktioniert. Hat jemand eine Idee was ich falsch mache?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.179
Punkte für Reaktionen
928
Punkte
424
Beim user web-server, also Web Station?
Je nachdem ist vermutlich die config die du bearbeitet hast die falsche. Denke httpd-ssl.conf-sys bezieht sich auf den Web-Server über den das DSM läuft.
 

fragnet

Benutzer
Mitglied seit
02. Feb 2014
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
@Fusion: Dann habe ich die falsche Datei geändert! Kannst du mit sagen, wo die Files für den Web-Server liegen also den Web-Server mit dem eigene Web-Sites gehostet werden? thx!
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.179
Punkte für Reaktionen
928
Punkte
424
Kannst ja selber schauen, was alles auf "-user" endet bzw im Namen trägt.
Ob jetzt unter /etc/httpd/conf/extra oder /etc/httpd/sites-enabled-user/ bin ich mir nicht sicher, wo dein Anliegen besser aufgehoben ist, weil ich mir diese Konstellation (client auth) noch nicht angesehen habe (und wo die Schlüssel dann liegen müssen etc., oder wie das geht)


Ist doch ein recht komplexes Gebilde wie da die Konfig zusammengebastelt wird. Ist bei mir auch oft try&error.
 

fragnet

Benutzer
Mitglied seit
02. Feb 2014
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
@Fusion: Vielen Dank für deine Hilfe! Die Datei httpd-ssl-vhost.conf-user ist die Richtige :)

caio
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.179
Punkte für Reaktionen
928
Punkte
424
Kannst du noch was zum Hintergrund erzählen? Mich und andere würde das interessieren.

Also hast du da jetzt ein Cert auf dem Client (Browser), wie prüft der Webserver das? Einfach gegen eine CA wie StartSSL?
 

fragnet

Benutzer
Mitglied seit
02. Feb 2014
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
kleines Tutorial

Gude,
habe mir mal die Arbeit gemacht und kleines Tutorial zum Thema geschriebe,. Ich habe mich kurz gefasst, weils dann einfacher zu lsen ist:eek:

openssl benötigt diesen Ordner
mkdir -p demoCA

und diese beiden Dateien.
Die Konfigurationsdatei von openssl liegt in /etc/ssl/ und kann gegebenfalls angepasst werden.
touch demoCA/index.txt
echo 1001 > demoCA/serial

Ein Schlüsselpaar erzeugen
openssl genrsa -des3 -out client.key 1024


Eine Zertifikatanforderung erstellen
openssl req -new -key client.key -out client.csr

ClientZertifikat mit 10 Jahre Gültigkeit erstellen und mit dem ServerZertifikat signieren
openssl x509 -req -in client.csr -out client.crt -sha1 -CA alt/server.crt -CAkey alt/server.key -CAcreateserial -days 3650

Das Zertifikat in eine pkcs12 Datei konvertieren und anschließend im Firefos unter "Ihre Zertifikate" importieren
openssl pkcs12 -export -in client.crt -inkey client.key -name "Christians Zertifikat" -out client.p12

Das Serverzertifikat ca.crt im Firefox unter "Zertifizierungsstellen" importieren, damit der Server als CA anerkannt wird.

Nun den WebServer auf der Synology Diskstation konfigurieren.
Die Datei "/etc/httpd/sites-enabled-user/httpd-ssl-vhost.conf-user" (@Fusion: Danke!) um diese Einträge erweitern oder anpassen und den WebServer neu starten:

<VirtualHost *:443>
ServerName anonymopus.de
DocumentRoot "/volume1/web/www"
ErrorDocument 403 "/webdefault/error.html"
ErrorDocument 404 "/webdefault/error.html"
ErrorDocument 500 "/webdefault/error.html"

SSLEngine on

#Serverzertifikat
SSLCertificateFile /usr/syno/etc/ssl/ssl.crt/server.crt
#Der key zum Serverzertifikat
SSLCertificateKeyFile /usr/syno/etc/ssl/ssl.key/server.key
#CA mit der Clientzertifikate überprüft werden, die mit diesem Serverzertifikat erstellt wurden
SSLCACertificateFile /usr/syno/etc/ssl/ssl.crt/ca.crt
#Die Zertifikatkette von Startcom von der das rootZertifikat stammt
SSLCertificateChainFile /usr/syno/etc/ssl/ssl.crt/SSLchain.pem
#Dieser Eintrag kann auch auf optional gesetzt werden. Hier wird mit "require" ein Clientzertifikat zum Aufrufen der WebSite zwingend gebraucht
SSLVerifyClient require
#Die Tiefe mit der ein ClientZertifikat geprüft wird
SSLVerifyDepth 1
</VirtualHost>

Auf meiner Syno habe ich ein SSL-Zertifikat von Startssl.com installiert und zum erstellen des ClientZertifikates einfach exportiert. Die Datei "SSLchain.pem" wird auf der Seite "https://www.startssl.com/?app=21" zum Download angeboten.

Die Authentifizierung mittels ClientZertifikat bietet einen guten Schutz gegen ungebetene Gäste und lässt sich sehr einfach implementieren. Ich hoffe, das ich nichts wichtiges vergessen habe und beantworte gerne weitere Fragen zu diesem interessanten Thema. Ich bin selber noch neu in der Materie und bin für weitere Anregungen sehr dankbar!

Bis dann!
 
Zuletzt bearbeitet:

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
@fragnet

So mal als Tipp:
Deinen Domainnamen würde ich in dem Post anonymisieren - ansonsten dürftest Du alsbald recht viel Verkehr registrieren ;)
Und ansonsten empfiehlt sich doch schon ein Schlüssel jenseits der 1024 bit... wobei auch AES einer Cipher wie 3DES zu bevorzugen ist.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.179
Punkte für Reaktionen
928
Punkte
424
Danke für die Zusammenfassung soweit. Ist schon ne interessante Sache. Muss allerdings nochmal tiefer einsteigen, ob ich es sinnvoll benutzen kann, weil ich ja teilweise auch ohne ClientCert erreichbar sein will. Mal sehen, wann ich dazu komme. Post ist abonniert. :)
 

fragnet

Benutzer
Mitglied seit
02. Feb 2014
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
@fragnet

So mal als Tipp:
Deinen Domainnamen würde ich in dem Post anonymisieren - ansonsten dürftest Du alsbald recht viel Verkehr registrieren ;).

Ich will versuchen die Anmeldung via ClientZertifikat noch auf DSM auszuweiten, dann liefe auch socher "Verkehr" ins Leere.
Versucht weiter dran zu bleiben, bis dann!
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Ich will versuchen die Anmeldung via ClientZertifikat noch auf DSM auszuweiten, dann liefe auch socher "Verkehr" ins Leere.
Das hat mit dem auflaufenden Verkehr herzlich wenig zu tun - irgendwelche Pappnasen können auch ohne Zertifikat Deine DS am Einschlafen hindern oder schlichtweg mit Anfragen bombardieren.
Beschäftige Dich doch mal mit dem Prinzip der Datensparsamkeit, sprich also der Frage, welche Informationen Du in die große weite Welt hinausposaunen willst und welche Folgen das haben kann.
 

fragnet

Benutzer
Mitglied seit
02. Feb 2014
Beiträge
76
Punkte für Reaktionen
0
Punkte
0
Beschäftige Dich doch mal mit dem Prinzip der Datensparsamkeit, sprich also der Frage, welche Informationen Du in die große weite Welt hinausposaunen willst und welche Folgen das haben kann.

??
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat