SSL-Zertifikate (FAQ)

Aus Portunity Wiki

Version vom 08:09, 29. Jul. 2011 bei Cda@superroot (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Allgemeine Fragen zu SSL

Was genau ist SSL?

SSL ist eine Abkürzung und steht für "Secure Socket Layer" - zu dt. frei übersetzt heißt dies also "sichere Übertragungs-Schicht".

SSL ist heute DER Standard, wenn es um die verschlüsselte und sichere Übertragung von Inhalten zwischen einem Webserver und den Browsern der Nutzer geht. SSL ermöglicht dabei zum einen die Verschlüsselung von kritischen Daten wie z.B. Bankverbindungsdaten, Kreditkartennumern, Zugangsdaten usw., sowie die Validierung des Webseiten-Betreibers seitens des Nutzers anhand von Zertifikaten, um z.B. eventuelle Angriffe besser ausschließen zu können.

Warum wird für jede Domain, welche per SSL gesichert wird, auf einem Server eine eigene IP-Adresse benötigt?

Vor einigen Jahren zu Beginn des Internets, als Domains noch hohe drei- bzw. vierstellige Beträge kosteten und die Protokolle nicht so weit entwickelt waren wie heute, war es üblich (und es ging technisch auch gar nicht anders), dass jede Domain eine eigene IP-Adresse hatte.

Im Zuge immer günstiger und beliebter werdender Domains und der absehbaren Knappheit der aktuell noch verwendeten IPv4-Adressen (die reichen eben nicht ewig) wurde das HTTP-Protokoll dahingehend erweitert, dass auf einem Server mit nur einer IP-Adresse auch mehrere Domains gehostet werden können (VirtualHost). Dabei fragt der Browser den Webserver an, dieser wertet die Anfrage genau aus und schaut dabei auch nach, welche Domain angefragt wurde. Der Webserver kann daraufhin dann zu der Domain im richtigen Verzeichnis nach den Daten sehen und diese zum Browser übertragen.

Wird eine SSL-Verschlüsselung verwendet, wird zunächst eine Verschlüsselung zwischen Webserver und Browser etabliert. Zu diesem Zeitpunkt weiss der Webserver jedoch noch gar nicht, um welche Domain es gehen könnte, erst nach Etablierung der Verschlüsselung werden Daten übertragen und damit dann auch die Information der Zieladresse samt Domain. Deshalb wird die IP-Adresse als Kriterium für die Domain sozusagen wieder verwendet, und deshalb kann pro IP-Adresse jeweils nur ein SSL-Zertifikat benutzt werden.

Wie funktioniert SSL technisch?

Wenn der Webbrowser Kontakt zum Webserver via HTTPS auf Port 443 (also einem anderen Port wie die normale HTTP-Kommunikation) aufnimmt, wird zunächst anhand des Server-Zertifikates die mögliche Verschlüsselungstiefe ausgehandelt (anhand des Zertifikates und der maximalen Verschlüsselungstiefe des Browsers). In der Regel wird heute eine 128 Bit-Verschlüsselung verwendet. Anschließend werden die öffentlichen Verschlüsselungs-Codes, auch Keys genannt, gegenseitig ausgetauscht, d.h. es kommt ein Public-Key-Verfahren zum Einsatz. Erst dann beginnt die eigentliche Datenübertragung zwischen Webserver und Browser - natürlich dann mit den öffentlichen Keys verschlüsselt.

Fragen zur Bestellung

Warum erhalte ich vom Bestellassistenten die Meldung, dass die Zertifikatsanforderung (CSR) fehlerhaft ist?

Dies kann mehrere Gründe haben:

  • Der angegebene "Gemeinsame Name" / "Common Name (CN)" ist kein vollständiger Domainname. Sie müssen als CN die vollständige URL Ihrer Website / Ihres Webservers eingeben wie z.B. www.ihrname.de oder shop.ihrname.de
  • Eventuell haben Sie ein Challenge-Passwort eingegeben ? Bitte lassen Sie während der Erstellung des Zertifikatanforderungs-Requests (CSR) das Passwort leer !
  • In einem der "Zertifikatanforderungs-Request"-Felder haben Sie ungültige Zeichen eingegeben? Am besten verwenden Sie nur die üblichen Standard-Buchstaben, -Ziffern, Leerzeichen und den Bindestrich. Vermeiden Sie Zeichen wie @ # $ % & ^ * = / \ ? . < > usw.
  • Sie haben nicht den kompletten "Zertifikatanforderungs-Request" inklusive der ersten Zeile "-----BEGIN CERTIFICATE REQUEST-----" sowie der letzten Zeile "-----END CERTIFICATE REQUEST-----" eingefügt. Achten Sie darauf, dass auch diese Zeilen mit enthalten sind.

Sofern Sie trotzdem eine Fehlermeldung erhalten, wenden Sie sich bitte an unseren Support.

Wie lange dauert die Ausstellung eines SSL-Zertifikates?

Da wir die Bestellungen von SSL-Zertifikaten manuell bearbeiten rechnen Sie bitte mit 1 bis 3 Werktagen.

Auch hängt die Zeit für die Erstellung von der Art des Zertifikates ab, da einige manuell geprüft werden, wodurch sich eine Auslieferung um bis zu 7 Tage hinziehen kann.


Wie wird unter Linux mit openssl die Zertifikatsanforderung (CSR) gestellt?

Sie benötigen das Programmpaket "openssl", welches bei den meisten Distributionen wie SuSE, Red Hat usw. mit enthalten sein sollte bzw. nur noch nachinstalliert werden muß:

Zuerst müssen Sie feststellen wo SSL-Zertifikate/-Dateien auf Ihrem Server abgelegt werden. Z.B.: /etc/httpd/ssl.* /usrl/local/httpd/conf/ssl.* /www/conf/ssl.* (Im Beispiel verwenden wir den Pfad "/www/conf")

Erstellen Sie einen SSL-Key:

openssl genrsa -out /www/conf/ssl.key/WWW.IHREDOMAIN.DE.key 2048

Erstellen Sie danach die Zertifikatsanfrage:

openssl req -new -key /www/conf/ssl.key/WWW.IHREDOMAIN.DE.key -out /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.csr

openssl fragt nach Eingabe des Befehls einige Daten ab:

  • Country Name (2 letter code): DE für Deutschland
  • State or Province Name: z.B. Hessen (keine Abkürzung verwenden)
  • Locality Name: Ihre Stadt
  • Organization Name: Ihr Firmenname, bei Privatpersonen -> Ihr Name
  • Organizational Unit Name: Abteilung Ihrer Firma zu der das Zertifikat gehoert. Falls nicht vorhanden z.B. "Webshop" o.ä.
  • Common Name (WICHTIG): Ihre URL z.B. www.ihrname.de oder shop.ihrname.de (sehr Wichtig, dass hier die URL auf der das Zertifikat laufen soll eingetragen wird!)
  • Email Address: Ihre EMail-Adresse bzw. EMail-adresse des Webmasters
  • A challenge password (WICHTIG): nichts eingeben, da Sie ansonsten beim Starten des Webservers manuell dieses Passwort jedesmal (!) eingeben müssen


Optional können Sie dann noch ein temporäres selbstsigniertes Zertifikat erstellen um die Funktionalität Ihres Servers zu testen:

openssl x509 -req -days 60 -in /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.csr -signkey \
/www/conf/ssl.key/WWW.IHREDOMAIN.DE.key -out /www/conf/ssl.crt/WWW.IHREDOMAIN.DE.crt

  • Tip: Sie können "-days" natürlich auch auf 365 erhöhen, um z.B. für ein Testsystem einen 1 Jahr gültiges Zertifikat zu erstellen.

Der Inhalt der Datei /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.csr muss nun in den Bestellassistenten als Zertifikatsanforderung (CSR) eingegeben werden.

Hinweis: Wenn Sie den Jakart-Tomcat als Webserver nutzten, können Sie diese Anleitung nicht nutzen!


Wo ist der Unterschied zwischen den angebotenen QuickSSL und den TrueBusinessID-Zertifikaten /-Tarifen?=

Wichtig: Von der Sicherheit und Verschlüsselungsstärke her unterscheiden sich die beiden Zertifikatstarife nicht voneinander, beide bieten 128 Bit Verschlüsselungsstärke ! Der Unterschied zwischen QuickSSL und TrueBusinessID besteht lediglich in der Art der Validierung:

Bei QuickSSL wird hierzu an den Domaininhaber der Domain, für welche das Zertifikat beantragt wird, eine eMail von GeoTrust versendet. Die Validierungsmail enthält einen anzuklickenden Link, durch welchen der Vorgang bestätigt wird. Der ganze Vorgang lässt sich in der Regel innerhalb nur weniger Minuten abwickeln und Sie erhalten unmittelbar Ihr Zertifikat - von daher auch der Namen "QuickSSL" !

Bei dem "True BusinessID"-SSL-Tarif wird zusätzlich seitens GeoTrust Ihre Identität anhand weiterer Kriterien und Dokumente überprüft, ob diese mit den Domaindaten übereinstimmen. Je nach Gewerbe- und Firmentyp anhand Ihrer Gewerbeanmeldung, Handelsregisterauszug oder wenn Sie als Privatperson diesen SSL-Tarif buchen, durch eine Kopie Ihres Personalausweises. Da dieser Vorgang im Vergleich zum QuickSSL-Tarif natürlich etwas aufwendiger ist, dauert die Ausstellung eines "True BusinessID"-Zertifikates auch ein wenig länger, in der Regel jedoch auch nur wenige Tage. Ihre Kunden können sich durch diese genauere Validierung Ihrer Identität noch sicherer sein und dies aus dem SSL-Zertifikat in den Details auch ersehen.

Fragen zu SSL und Webservern

Beim Starten des (Apache-)Webservers wird jedesmal ein Passwort verlangt - wie kann ich dies verhindern?

Sie haben beim Erstellen der Zertifikatsanfrage auf die Frage nach dem sogenannten "Challenge Password" ein Passwort angegeben, welches nun in dem Key hinterlegt ist und damit bei jedem Start des Webservers aus Sicherheitsgründen eingegeben werden muß. Deshalb sollten Sie beim Erstellen der Zertifikatsanfrage an dieser Stelle besser kein Kennwort hinterlegen - es sei denn Sie haben den Webserver jeweils im direkten Zugriff und wollen diese zusätzliche Sicherheit. In der Regel ist dies bei einem automatisierten Betrieb jedoch eher lästig und für die meisten Websites auch aus Sicherheitsgründen eher nicht nötig.

Sie können das Passwort jedoch auch nachträglich noch wieder entfernen - auf einem Linuxserver mit openssl geschieht dies folgendermaßen:

  • Wechseln Sie in das Verzeichnis in dem Ihre "Keys" liegen
  • Führen Sie folgende Befehle aus:
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key

Noch ein Tip: Stellen Sie sicher, dass nur der root-Benutzer den privaten Key lesen kann indem Sie die Dateiberechtigungen sichern (z.B. mit chmod 400 server.key)


Welche Webserver sind kompatibel zu den SSL-Zertifikaten?

Die meisten der heute in Verwendung und Einsatz befindlichen kommerziellen und "freien" Webserver beherrschen SSL in der nötigen Version 3.0. Dies sind unter anderem:

  • Apache httpd + MOD SSL
  • Apache httpd + Raven
  • Apache httpd + Raven 1.5x
  • Apache httpd + SSLeay
  • C2Net Stronghold
  • Cobalt RaQ3/RaQ4 "Main Site"
  • Cobalt RaQ3 "Virtual Site"
  • Cobalt RaQ4 "Virtual Site"
  • IBM HTTP
  • iPlanet Enterprise Server 4.1
  • Lotus Domino Go 4.6.2.6 und höher
  • Lotus Domino 4.6 und höher
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Server 5.0
  • Netscape Enterprise/Fast Track
  • O'Reilly WebSite Professional 2.X
  • Stronghold 3
  • WebSTAR 4.0 und höher


Wie richte ich das Zertifikat unter Apache 2 ein?

Wenn Sie nur ein SSL Zertifikat auf Ihrem Server / auf der IP-Adresse haben, dann müssen Sie hier nichts besonderes beachten. Haben Sie hingegen bereits eine SSL-Website laufen, so müssen Sie das neue Zertifikat (bzw. den Webspace auf Port 443) auf eine zusätzliche IP-Adresse binden. siehe dazu weiter oben.

Sie benötigen:

  1. Die .key Datei: /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.key
  2. Die .crt Datei (Der Zertifikat): /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.crt
  3. Die .ca-bundle Datei: "/www/conf/ssl.csr/WWW.IHREDOMAIN.DE.ca-bundle"
    Diese Datei erhalten Sie zusätzlich vom SSL-Lieferanten, z.B. Portunity

Bearbeiten Sie Ihre Konfigurationsdatei des Apache2 Webservers:

 z.B. /etc/apache2/sites-enabled/WWW.IHREDOMAIN.DE


<VirtualHost 217.255.47.11:443>
DocumentRoot /www/websapce/WWW.IHREDOMAIN.DE
ServerName WWW.IHREDOMAIN.DE
 
### SSL aktivieren
SSLEngine on
SSLCertificateFile /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.crt
SSLCertificateKeyFile /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
SSLCACertificateFile /www/conf/ssl.csr/WWW.IHREDOMAIN.DE.ca-bundle
### / SSL aktivieren
 
</VirtualHost>
  • ggf. müssen Sie in der "/etc/apache2/apache2.conf" noch folgendes ergänzen / anpassen:
NameVirtualHost 217.255.47.11:80
NameVirtualHost 217.255.47.11:443


Persönliche Werkzeuge