SSL Zertifikat
Schorsch
- programmiertechnik
Guten Abend
Also, wenn da einer sagt: "Auf meiner Webseite soll eine Zugriffsüberprüfung mittels SSL-Zertifikat stattfinden" dann kann man ihm folgendes zur Antwort geben:
a) Suche dir einen Host, der SSL anbietet.
b) Du kannst dir selber ein SSL Zertifikat basteln.
Das geht irgendwie (wie eigentlich genau? Wie
lange hat man dafür?).
Aber dann reklamiert der Browser, weil er das
Zertifikat nicht kennt. Du kannst ihm das Reklamieren
aber abstellen, indem du ihn mit so einer Datei fütterst.
c) Du kannst ein SLL Zertifikat bei einer Firma kaufen.
Dieses ist dan zertifiziert, so das der Browser nicht
mehr reklamiert. Kostet rund 400Euro (stimmt das?).
Achtung, bei Punkt b) und c) muss dein Host einverstanden sein. Es kann sein, dass der deine SSL-Zertifikate auf seinem Host nicht zulässt. Jedenfalls kannst du bei b) und c) deine Zertifikate nur nutzen, wenn du Zugriff auf den Server hast oder eben der Hoster dies für dich tut.
Ist das so korrekt?
Oder habe ich da was gar nicht verstanden?
Für Tipps und Korrekturen danke ich schon im Voraus.
Gruss
Schorsch
Hallo Schorsch,
[SSL]
Ist das so korrekt?
Das ist soweit korrekt gemeint, wenn auch die Formulierung arg ungenau ist. Die günstigsten Zertifikate, die ein Browser in der Standardinstallation auch akzeptiert, sind die, die von Thawte signiert wurden: http://www.thawte.com/. Die von VeriSign sind da noch teurer (und das, obwohl man VeriSign IMHO sogar weniger trauen kann, als Thawte, weil sie mindestens einmal einer anderen Person ein microsoft.com-Zertifikat ausgestellt haben - ein Patzer, den sich keine CA erlauben sollte).
Alternativ gibt's noch http://www.cacert.org/ - da gibt's Zertifikate kostenlos (gegen Nachweis, dass man die Domain wirklich besitzt) - allerdings ist dieses Zertifikat nicht bei jedem Browser installiert, aber inzwischen bei doch schon recht vielen Leuten.
Allgemein: Wenn Du ein SSL-Zertifikat willst, musst Du so vorgehen: Du musst Dir ein Schlüsselpaar anlegen. Das besteht aus einem öffentlichen und einem privaten Schlüssel. Den öffentlichen Schlüssel musst Du dann in ein sog. CSR (Certificate Sign Request) packet, bei dem dann Inforamtionen wie Domainname, etc. dazukommen. Dieses CSR schickst Du der CA (Certification Authority). Dann zahlst Du und bekommst Dein Zertifikat zurück. Das Zertifkat und den privaten Schlüssel braucht dann der Webserver. Das Zertifikat kannst Du beliebig weitergeben (auch wenn das nicht wirklich nützlich ist), das besteht lediglich aus Deinem öffentlichen Schlüssel, den Informationen über Domainname und einer Signatur der CA (die dem Browser erst bestätigt, dass das Zertifikat authentisch ist). Du kannst das CSR auch selbst signieren - kostenlos - (das wird dann ein sog. self-signed certificate), das verursacht allerdings _immer_ Warnungen im Browser. Um die Signatur zu erstellen, brauchst Du Deinen privaten Schlüssel. Ich empfehle zu der Thematik ein gutes Buch über Public-Key-Kryptographie sowie darauf aufbauend die Dokumentation des Apache-Webservers, in der das praktische beschrieben wird: http://httpd.apache.org/docs-2.0/ssl/ssl_faq.html#aboutcerts (die Zertifikate / Schlüssel lassen sich auch für andere Webserver verwenden, das Format ist standardisiert).
Viele Grüße,
Christian
Salut Christian
Wow! Vielen Dank für deine ausführliche Antwort! Das hat mich echt gefreut.
Was mir noch nicht ganz klar ist, inwieweit der Host eine Rolle spielt. Kann ich damit einfach zum Host gehen und ihm sagen: "Tu mir das Zertifikat drauf" oder gibt es da nur wenige Hosts, welche SSL unterstützen?
Ein guter Tag
Schorsch
Hallo Schorsch,
Was mir noch nicht ganz klar ist, inwieweit der Host eine Rolle spielt. Kann ich damit einfach zum Host gehen und ihm sagen: "Tu mir das Zertifikat drauf" oder gibt es da nur wenige Hosts, welche SSL unterstützen?
Also zuerst einmal Begriffsklärung: Unter "Host" versteht man einen Rechner oder manchmal auch nur den den Namen des Rechners, der irgendwie im Internet angeschlossen ist. Du kannst also der Einfachheit halber hier in diesem Kontext Host mit Server gleichsetzen (wobei das wie gesagt nicht wirklich stimmt). Dann gibt es noch den sogenannten "Hoster" - das ist die Firma / Organisation / sonstwas, die Dir ermöglicht, Deine Webseiten ins Netz zu stellen. Der Traffic-Sponsor von SELFHTML, VERIO, ist z.B. auch ein Hoster. 1&1, Strato, etc. sind andere.
Prinzipiell brauchst Du, um SSL-Zertifikate nutzen zu können, Zugriff auf die zentrale Konfiguration des Webservers, von dem die Seiten abgerufen werden. Wenn Du Dir selbst einen Server mit root-(oder Administrator-)Zugang gemietet haben solltest, hast Du das automatisch. Ansonsten hat das nur der Hoster, d.h. der ist der einzige, der dem Webserver sagen kann, dass der das Zertifikat verwenden soll. Insofern brauchst Du einen Hoster, der Dir ein Zertifikat erlaubt.
Außerdem besteht noch folgendes, weiteres Problem: SSL ist eine Art "Tunnel", d.h. der Browser spricht mit dem Webserver immer noch HTTP, die Anfragen werden allerdings verschlüsselt. Das SSL-Zertifikat enthält jedoch aus Sicherheitsgründen auch den Rechnernamen des Webservers (damit der Client jederzeit verifizieren kann, ob das Zertifikat für _diese_ Domain gültig ist). Dies hat jedoch zur Folge, dass man pro IP-Adresse nur ein Zertifikat haben kann (man hat ja pro IP-Adresse nur einmal den Port 443 zur Verfügung). Dein Hoster muss sich für SSL also eine zusätzliche IP-Adresse nur für diesen Zweck besorgen. Und das wird auch nicht jeder Hoster mit sich machen lassen bzw. nur gegen Aufpreis.
Viele Grüße,
Christian