ssl-cert
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Möchte man die verschlüsselten Protokolle wie HTTPS, IMAPS oder POP3S nutzen, so benötigt man ein SSL-Zertifikat einer CA (Certification Authority). Eigentlich muss solch ein Zertifikat von Firmen oder Organisationen ausgestellt werden, die dafür autorisiert sind. Doch für Testzwecke oder die private Nutzung reicht oft auch ein selbstgeneriertes Zertifikat. Dieses wird durch den Befehl ssl-cert auf dem Rechner erstellt. Allerdings kann der praktische Einsatz durch kleinere Probleme getrübt sein.
Installation¶
Experten-Info:
Anfang April 2014 ist der Heartbleed-Bug (CVE-2014-0160) in OpenSSL bekannt geworden. Leider hat sich Canonical entscheiden, bis einschließlich Ubuntu 14.04 nicht die aktualisierte Version 1.0.1g oder neuer zu nutzen, sondern nur die Pakete in den offiziellen Paketquellen zu patchen. Seit dem 7. April 2014 stehen diese als Update zur Verfügung. Man sollte sich daher nicht durch die scheinbar betroffene Versionsnummer des Pakets täuschen lassen.
Allerdings wird empfohlen, vor diesem Datum mit Ubuntu 12.04 oder neuer erstellte Zertifikat zu verwerfen und neue zu erstellen.
Durch die Installation [1] des folgenden Pakets wird das Zertifikat sofort erzeugt:
ssl-cert
Befehl zum Installieren der Pakete:
sudo apt-get install ssl-cert
Oder mit apturl installieren, Link: apt://ssl-cert
Nutzung¶
Man kann diesen Vorgang auch später durch folgenden Befehl wiederholen [2][3]:
sudo make-ssl-cert generate-default-snakeoil
Die dadurch generierten Dateien werden sofort in die SSL-Schlüssel aufgenommen:
SSL-Zertifikat | /etc/ssl/certs/ssl-cert-snakeoil.pem |
SSL-Schlüssel | /etc/ssl/private/ssl-cert-snakeoil.key |
und können dort beispielsweise von Serveranwendungen genutzt werden.
SSL-Zertifikate erneuern¶
Sollte sich der Rechnername ändern oder das Zertifikat ablaufen, so kann man durch den Befehl:
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
ein neues Zertifikat erzeugen. Damit das neue Zertifikat verwendet wird, müssen die entsprechenden Dienste neu gestartet werden.
SSL-Zertifikate mit längerer Laufzeit¶
Um die Laufzeit/Gültigkeit der erstellten Zertifikate von der Voreinstellung 1 Monat auf einen anderen Zeitraum zu ändern, muss man das Shell-Skript /usr/sbin/make-ssl-cert mit einem Editor [4] und Root-Rechten bearbeiten. In dieser Datei nach openssl
suchen (ungefähr bei Zeile 124) und die Zeile
openssl req -config $TMPFILE -new -x509 -nodes \
in
openssl req -config $TMPFILE -new -days 365 -x509 -nodes \
ändern. Damit ist das nächste selbst erstellte Zertifikat 365 Tage gültig.
Problembehebung¶
Wenn ein Zertifikat über die obigen Schritte erneuert wurde (force-overwrite
), ist darauf zu achten, dass im Zertifikat der richtige Rechnername eingetragen wird. ssl-cert setzt diesen als CommonName des Zertifikates ein. Der Name kann im laufenden Betrieb mittels des Befehls:
sudo hostname NEUER_NAME
geändert (die Datei /etc/hostname wird nur beim Systemstart gelesen) oder einfach nur mit hostname
ausgelesen werden.
Danach wird versucht, diesen Hostname aufzulösen (mittels /etc/hosts, DNS, etc). Wenn ssl-cert den Namen nicht auflösen kann, bekommt man eine Fehlermeldung, dass der Hostname kein gültiger FQDN ist.
Links¶
SSL - Wikipedia
CA - eine eigene Certification Authority betreiben
CAcert - Community, die kostenlose SSL-Zertifikate ausstellt