SSL zur Authentfizierung verwenden
Andreas Korthaus
- programmiertechnik
Hallo!
Man kann SSL ja nicht nur zur Verschlüsselung der HTTP-Verbindung verwenden, sondern auch zur Authentifizierung. Habe da(modssl.org) zwar ein bisschen nachgelesen, bin aber noch nicht wirklich schlau daraus geworden. Ich muß ein eigenes Zertifikat erstellen, also:
1. erstelle RSA private key
2. erstelle CA Certificate
3. erstelle Signing Request (CSR)
4. sende CSR an eigenes CA
5. Dann erstellt mein Apache 2 Dateien:
SSLCertificateFile /path/to/this/server.crt
SSLCertificateKeyFile /path/to/this/server.key
Habe ich das bis hierher richtig verstanden?
Wie funktioniert das jetzt in der Praxis? Ich will das nur bestimmte, von mir zu bestimmende Clients zugriff auf den Server bekommen.
Also baue ich sowas in meine httpd.conf ein, vermutlich in den Abschnitt des virt. hosts.
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /path/to/this/server.crt
Nur wie weise ich jetzt den Clients das Zertifikat zu? Ich will nicht das die Clients das von sich aus können, denn dann wäre die Authentifizierung witzlos.
Wie mache ich das? Gibt es eine Möglichkeit auf diese Weise eine Authetifizierung wie bei der HTTP-Authentifizierung durchzuführen? Also das ich serverseitig Zugriff auf eine genaue UserID oder einen Username bekomme?
Viele Grüße
Andreas
Moin Moin !
Soweit ich diese Geschichte verstehe, müssen die Clients (Browser) ein von Dir gebautes Zertifikat herunterladen und installieren, mit dem sie sich dann beim Server ausweisen.
Google hat (mit Umwegen) den folgenden Link ausgespuckt:
http://www.modssl.org/docs/2.8/ssl_reference.html
Viel Spaß beim Lesen.
Alexander
Hallo!
Soweit ich diese Geschichte verstehe, müssen die Clients (Browser) ein von Dir gebautes Zertifikat herunterladen und installieren, mit dem sie sich dann beim Server ausweisen.
Google hat (mit Umwegen) den folgenden Link ausgespuckt:
http://www.modssl.org/docs/2.8/ssl_reference.htmlViel Spaß beim Lesen.
Dieses zweifelhafte Vergnügen hatte ich bereits, habe es aber totzdem noch nicht wirklich umfassend verstanden. ich verstehe wie ich keys, Zertifikate... erstelle, aber ich kenne es nur so das der Cllient dann das Zertifikat vomn sich aus runterladen kann, ich will aber sicherstellen, das _ich_ bestimme welcher Client das Zertifikat bekommt, um sicherzustellen, das nur ganz bestimmte Clients Zugriff bekommen. Nur wie mache ich das?
Grüße
Andreas
Hallo Andreas,
Ich denke Du unterliegst einem Irrtum.
Die Authentfizierung erfolgt meines Wissens über eine externe Authentfizierungsstelle zum Beispiel Verisign.
Da Du dort die Zertifikate nur gegen Nachweis eines Amtlichen Dokumentes erhälts, stellen die einen Service auf irrer Hp zur Verfügung über die jeder User nachgucken kann wem dieses Zertifikat gehört.
Kleiner tip zu den Zertifikaten und deren Funktion auf der Verisign HP gibs kostenlose Sachen zum Download.
Ich kanns Dir auch mal per Mail schicken, wenn Du keine Lust hast Dir dass Zeug runterzuladen, sind aber glaube ich 300kb pdf Dateien.
Viele Grüße TomIRL
Hallo!
Ich denke Du unterliegst einem Irrtum.
Ich weiß nicht, aber wie ich es verstanden habe kann man auch seine eigenen Zertikate erstellen, nur sind das dann keine denen der Browser automatisch vertraut. Mir geht es aber mehr um die Authentifizierung der Clients, nicht des Servers.
Grüße
Andreas
Hallo!
Ich denke Du unterliegst einem Irrtum.
Ich weiß nicht, aber wie ich es verstanden habe kann man auch seine eigenen Zertikate erstellen, nur sind das dann keine denen der Browser automatisch vertraut. Mir geht es aber mehr um die Authentifizierung der Clients, nicht des Servers.
Richtig, Du kannst Deine eignen Zertifikate erstellen, die sind dann auch genau so sicher wie die von Verisign etc. Nur kann niemand überprüfen ob Du tatsächlich der Rechtmäßige Inhaber des Zertifikates bist.
Ehrlich gesagt, ich hab noch niemanden gesehen der ein Zertifikat beim Aussteller überprüft.
Also alles eine ziemliche Abzockerei bei Preisen um die 400$ aufwärts.
Authentfizierung der clients ist meines Wissens nicht möglich.
Nur über PW und die bekannten Möglichkeiten.
Viele Grüße aus Berlin
TomIRL
Hallo!
Richtig, Du kannst Deine eignen Zertifikate erstellen, die sind dann auch genau so sicher wie die von Verisign etc. Nur kann niemand überprüfen ob Du tatsächlich der Rechtmäßige Inhaber des Zertifikates bist.
Darum geht es mir wie gesagt hier nicht.
Ehrlich gesagt, ich hab noch niemanden gesehen der ein Zertifikat beim Aussteller überprüft.
Der Witz an der Sache ist das der Browser dann nicht nachfragt, wenn man eine "geprüfte" https-Seite betritt.
Also alles eine ziemliche Abzockerei bei Preisen um die 400$ aufwärts.
Authentfizierung der clients ist meines Wissens nicht möglich.
Nur über PW und die bekannten Möglichkeiten.
Das weiß ich eben nicht: http://www.modssl.org/docs/2.8/ssl_howto.html#ToC7
Nur bin ich nicht sicher wie das genau funktioniert, wie bekommen nur ausgewählte Clients das Zertifikat?
Grüße
Andreas
Der Witz an der Sache ist das der Browser dann nicht nachfragt, wenn man eine "geprüfte" https-Seite betritt.
Kein Witz, weil Der Browser prüft Zertifikat vorhanden oder nicht wenn eins da ist dann o.k. sonst nachfragen.
Kann man aber einstellen.
http://www.modssl.org/docs/2.8/ssl_howto.html#ToC7
Nur bin ich nicht sicher wie das genau funktioniert, wie bekommen nur ausgewählte Clients das Zertifikat?
Jetzt verstanden!
Du machst ein Client Zertifikat und schickst es z.Bsp per mail.
Die müßen dann dieses Zertifikat im Browser installieren.
Klick auf dass Schloss u.s.w.
Die Einstellungen im Apache verhindern, dass jeder Client das Zertifikat gesendet bekommt.
Hoffe es hilft Dir!?
TomIRL
Hi!
http://www.modssl.org/docs/2.8/ssl_howto.html#ToC7
Nur bin ich nicht sicher wie das genau funktioniert, wie bekommen nur ausgewählte Clients das Zertifikat?
Jetzt verstanden!
Du machst ein Client Zertifikat und schickst es z.Bsp per mail.
Die müßen dann dieses Zertifikat im Browser installieren.
Klick auf dass Schloss u.s.w.
Die Einstellungen im Apache verhindern, dass jeder Client das Zertifikat gesendet bekommt.
OK, guter Tip. Im Mozilla kann ich eine Datei importieren. Aber das sind wohl "PKCS12-Files", welche Datei ist das? ISt das die auf dem Server erzugte SSLCertificateKeyFile /path/to/this/server.key? Es müßte aber glaube ich was anderes sein, nur was?
Grüße
Andreas
OK, guter Tip. Im Mozilla kann ich eine Datei importieren. Aber das sind wohl "PKCS12-Files", welche Datei ist das? ISt das die auf dem Server erzugte SSLCertificateKeyFile /path/to/this/server.key? Es müßte aber glaube ich was anderes sein, nur was?
Kann ich jetzt auch nicht so aus dem Stehgreif sagen,
ich hab zum letzen mal vor 2 Jahren so etwas installiert bin da ein bischen aus der Übung.
Aber eine Krücke wäre das Clientzertifikat ganz normal erzeugen, normal einbauen, auf einem Browser importieren und anschliessend exportieren.
Dann hast Du das Zertifikat einzeln vorliegen.
Und dann verschicken.
Ich probiere mal heute Abend die Sache aus, hab ich nämlich auch nicht gewust, dass man über Apache Einstellungen, das Senden des Zertifikates verhindern kann.
War aber bisher auch nicht wichtig für mich.
Viele Grüße TomIRL
OK, guter Tip. Im Mozilla kann ich eine Datei importieren. Aber das sind wohl "PKCS12-Files", welche Datei ist das? ISt das die auf dem Server erzugte SSLCertificateKeyFile /path/to/this/server.key? Es müßte aber glaube ich was anderes sein, nur was?
Die Antwort hast du in Deinem ersten Posting gegeben:
server.crt ist die Zertifikatdatei!
Habs grad probiertt!
Klappt!
Hi!
Die Antwort hast du in Deinem ersten Posting gegeben:
server.crt ist die Zertifikatdatei!
Habs grad probiertt!
Klappt!
Hm, bei mir nicht. Ich habe eben diese Datei in meinem Mozilla unter Einstellungen/Sicherheit/Zertifikate/Verwalten/ versucht zu importieren, was aber gescheit ert, ist, mozilla hätte gerne eine Datei wie "PKCS12-Files".
Was mache ich falsch? Welchen Browser hast Du verwendt und wie hast Du das Zertifikat importiert?
Grüße
Andreas
server.crt ist die Zertifikatdatei!
Habs grad probiertt!
Klappt!Hm, bei mir nicht. Ich habe eben diese Datei in meinem Mozilla unter Einstellungen/Sicherheit/Zertifikate/Verwalten/ versucht zu importieren, was aber gescheit ert, ist, mozilla hätte gerne eine Datei wie "PKCS12-Files".
Was mache ich falsch? Welchen Browser hast Du verwendt und wie hast Du das Zertifikat importiert?
Mamas IE hats genommen und ohne Probleme!
Internetoptionen:
Inhalte
Zertifikate klappt!
Kann man verschiedene Dateitypen nehmen!
In einer Datei könne mehrere Zertifikate gesppeichert sein!