Deutsch English
Dein Feedback:
Hat die Seite Deine Erwartung erfüllt? vote3 Ja
vote2 Teilweise
vote1 Nein
Noch ein Kommentar?

Nur falls, Du eine Antwort erwartest, Deine E-Mailadresse

Gegebenenfalls noch Dein Name

Do not change this:
Feedback
Suchen

TinyCA

Diese Seite beschäftigt sich damit wie man mit dem Programm TinyCA Zertifikate erstellt um
  • Emails zu Verschlüsseln und zu Signieren
  • SSL verschlüsselte Dienste mit Zertifikaten zu versorgen
24-09-2005 13.58

Die eigene CA

Nachdem man TinyCA installiert hat muss man als erstes seine eigene CA anlegen. Diese kann man z.B. "Meine erste eigene CA" nennen. Das einzugebende Passwort wird man später benötigen wenn man Zertifikate unterschreibt - also nicht vergessen :-)
Sobald die CA erstellt ist exportieren wir auch gleich ein CA-Zertifikat, welches man z.B. im Browser oder im Emailprogramm installieren kann, um jederzeit zu überprüfen, ob ein Zertifikat wirklich von uns ausgestellt wurde: CA-Reiter auswählen und dann "CA exportieren" auswählen.
25-09-2005 12.21

Emails signieren / verschlüsseln

Wenn man für sich oder seine Mitmenschen Zertifikate zum Signieren und oder Verschlüsseln von Emails anlegen will, wählt man einfach den Zertifikatsreiter in TinyCA und klickt auf "Neuer Key und Zertifikat (Klient)". Dort gibt man z.B. den Namen des zukünftigen Zertifikatsinhabers ein (Vorsicht bei Umlauten), seine Emailadresse und ein Passwort mit dem das Zertifikat beschützt wird bis es installiert wird.
Das fertige Zertifikat kann man einfach per Rechtsklick in eine PKCD#12 (Zertifikat & Key) Datei exportieren lassen welche der künftigen Eigentümer mit Hilfe des Transportpasswortes (mehr oder weniger) leicht in das Mailprogramm seiner Wahl importiert kann. Dabei kann er dann auch ein neues Passwort festlegen welches er ab dann benötigt um mit dem Zertifikat Emails signieren zu können. Um das Zertifikat wirklich zu nutzten muss er wahrscheinlich unserer CA in seinem Programm erst sein Vertrauen aussprechen.
26-11-2005 23.17

SSL Dienste

Apache

Als erstes Apache 2 installieren. Wenn man möchte kann man testweise das Skript apache2-ssl-certificate aufrufen welches ein selbstsigniertes Zertifikat erzeugt und nach /etc/apache2/ssl/apache.pem kopiert. Die Apache Konfiguration findet man unter /etc/apache2/sites-available/default, entweder man passt diese direkt an oder man kopiert sie und ändert die Kopie (dann sollte man allerdings einen Link auf die Kopie von /etc/apache2/sites-enabled/ anlegen damit die Konfiguration auch benutzt wird).
Die Konfiguration sollte etwa so aussehen:
NameVirtualHost *:443
<VirtualHost *:443>
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
...
</VirtualHost>
In der Datei /etc/apache2/ports.conf fügt man noch
Listen 443
hinzu. https://... sollte nach einem Neustart des Apache funktionieren.

Um statt dem selbstsignieren Zertifikat ein eigenes zu nutzen legen wir in TinyCA im Zertifikats Reiter ein neues Server Zertifikat an. Wichtig ist hierbei dass der "Common Name" genau dem Rechnernamen entspricht den die Benutzer des SSL Dienstes eingeben. Also z.B. secure.example.com wenn die Benutzer https://secure.example.com/index.html aufrufen. Stimmen die Namen nicht überein werden die Benutzer bei jedem Aufruft über die Unstimmigkeit informiert.

Das neu erstellte Zertifikat exportieren wir nun in eine PEM Datei z.B. foo.crt und den entsprechenden Schlüssel (Schlüssel Reiter) in eine PEM Datei ohne Passwort z.B. foo.key und kopieren beide nach /etc/apache2/ssl/.

In neueren TinyCA Versionen gibt es beim Export des Zertifikats schon eine Option, den Key gleich mit zu exportieren. Allerdings fehlt dann die Option, den Key ohne Passwort zu exportieren.

In der Apache Konfiguration ändern ersetzten wir jetzt die SSLCertificateFile durch diese beiden Zeilen:
SSLCertificateFile    /etc/apache2/ssl/foo.crt
SSLCertificateKeyFile /etc/apache2/ssl/foo.key
Nach einem Neustart des Apache sollten nun unsere eigenen Zertifikate benutzt werden.
Vorteil gegenüber den selbstsignierten Zertifikaten ist, dass wir, sollte das Zertifikat einmal auslaufen, einfach ein neues einbinden können und solange der Benutzer unserer CA sein Vertrauen ausgesprochen hat ist der Wechsel für Ihn transparent.

Apache Fehler

Gegebenenfalls in /var/log/apache2/error.log nachsehen ob der Apache fehlerfrei gestartet wurde.
Ich hatte z.B. diese Meldungen als ich noch nicht die foo.key Datei ohne Passwort eingebunden hatte:
[error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

Courier IMAP

Bei der Installation von z.B. courier-imap-ssl wird ein selbstsigniertes Zertifikat in der Datei /etc/courier/imapd.pem abgelegt. Wir legen wieder wie bei der Apache Konfiguration ein Server Zertifikat in TinyCA an welches als "Common Name" genau den Rechnernamen hat. Das neue Zertifikat und den dazu passenden Schlüssel exportieren wieder in die PEM Dateien foo.crt und foo.key (wieder PEM ohne Passwort). Aus diesen beiden Dateien erzeugen wir nun eine indem wir den Inhalt der beiden Datei einfach hintereinanderhängen, z.B. mit dem Befehl
cat foo.crt foo.key > imap.pem
Die Datei sollte dann so aussehen:
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Mit dieser Datei ersetzen wir nun das vorhanden selbstsignierte Zertifikat und starten courier-imap-ssl neu.

Abgelaufene Zertifikate

Zertifikate haben normalerweise eine Beschränkte Gültigkeitsdauer. Sobald ein Zertifikat abgelaufen ist, startet man TinyCA wieder, geht auf den Zertifikatsreiter, klickt das abgelaufene Zertifikat an und wählt im Kontextmenü renew aus. Im Anschluss überschreibt das abgelaufene Zertifikat und exportiert es erneut (siehe Apache Anleitung).
26-09-2008 14.15
Powered by PHP Created with Xemacs Valid XHTML 1.0! Valid CSS!