Ubuntu 12.04 „Precise Pangolin“
Ubuntu 8.04 „Hardy Heron“
Möchte man die verschlüsselten Protokolle wie https, imaps bzw. 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 authorisiert sind. Doch für den Privatanwender reicht sicherlich auch ein selbst generiertes Zertifikat. Dieses wird automatisch durch ssl-cert auf dem Rechner generiert.
Durch die Installation [1] des Pakets
ssl-cert
wird das Zertifikat sofort erzeugt.
Sollte dies nicht geschehen sein, so kann man die Aktion durch folgenden Befehl wiederholen
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.
Sollte sich der Rechnername ändern, oder sollte 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.
Wenn man nicht will, dass die so erstellten Zertifikate i.d.R. nur 1 Monat gültig sind kann man das make-ssl-cert Skript mit einem Editor bearbeiten
sudo vim /usr/sbin/make-ssl-cert
Nach openssl suchen (bei mir ist es ungefähr bei Zeile 124) und die Zeile
openssl req -config $TMPFILE -new -x509 -nodes \
durch
openssl req -config $TMPFILE -new -days 365 -x509 -nodes \
ändern. Damit ist das nächste selbst erstellte Zertifikat 365 Tage gültig.
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. Er kann mittels "hostname neuer_name" geändert (/etc/hostname wird nur beim Systemstart gelesen), oder einfach nur mit "hostname" ausgelesen werden.
Danach wird scheinbar 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.
SSL - Wikipedia
CA-Cert - Community, die kostenlose SSL-Zertifikate ausstellt
FAQ: SSL-Grundlagen - VeriSign