Content
Dateianzeige für certs (1.7.6)
usr/share/doc/certs/certs.txt
Das Certs-Paket
Die Einleitung
Dieses Paket stellt Funktionen zur Verfuegung um TLS-Zertifikate
erstellen und verwalten zu koennen.
Die Funktionen
Das Certs-Paket beinhaltet keine weiteren externen Komponenten.
Die Voraussetzungen
Ein lauffaehiger eisfair-Server ;-)
Die Installation
Das Certs-Paket wird ueber das Setup-Menue installiert. Wird eine
aeltere Paketversion vorgefunden, so wird diese deinstalliert bevor die
neuen Programmdateien installiert werden.
Das Menue im Setup-Programm
Das Menue im Setup-Programm ist wie folgt aufgebaut:
* Certs Service
+ View documentation: Anzeigen der Dokumentation
+ Edit configuration: Bearbeiten der Konfiguration
+ Show certificate related information
o Show certificate overview: Anzeigen einer
Zertifikatsuebersicht
o Show certificate details: Anzeigen von
TLS-Zertifikatdetails
o Show csr details: Anzeigen von TLS-Antragsdetails
o Show crl details: Anzeigen von TLS-Widerrufsdetails
o Manage certificates: Verwalten von TLS-Zertifikaten
o Return: Untermenue verlassen
+ Download ca certificate bundle: CA-Zertifikatssammlung
herunterladen
+ Find duplicate certificates: Doppelte Zertifikate suchen
+ Identify unrequired certificates
o Show unrequired certificates: Anzeigen nicht verwendeter
Zertifikate
o Archive unrequired certificates: Archivieren nicht
verwendeter Zertifikate
o Delete unrequired certificates: Loeschen nicht
verwendeter Zertifikate
o Return: Untermenue verlassen
+ Update certs/crl hashes: Die Zertifikats- und CRL-Hashes
aktualisieren
+ Update revocation list(s): Widerrufslisten
herunterladen/aktualisieren
+ Update URLs in OpenSSL configuration: URLs in der OpenSSL
Konfiguration aktualisieren
+ View Update revocation list(s) logfile: Logdatei der
Widerrufslistenaktualisierung anzeigen
+ Return: Untermenue verlassen
Die Menuepunkte duerften selbsterklaerend sein, da sie keinerlei
weitere Eingaben erwarten. Aus diesem Grund wird auf deren Funktion
nicht weiter eingegangen.
Die Aenderung der Konfiguration
Die Konfiguration kann ueber den Menuepunkt 'Edit configuration'
geaendert werden. Standardmaessig wird der Editor aufgerufen, der in
der Environment- Konfiguration ueber die Variable 'EDITOR' festgelegt
wurde. Nachdem der Editor beendet wurde wird abgefragt, ob die
Konfiguration aktiviert werden soll. Wird dies bestaetigt, werden ueber
ein Skript die Anpassungen umgehend wirksam gemacht.
Die Konfigurationsdatei
In der Konfigurationsdatei, die ueber das Menue zugaenglich ist, sind
folgende Parameter vorhanden; wer sie von Hand editieren will findet
sie unter /etc/config.d/certs.
Die Parameter
START_CERTS
Fuer die Aktivierung des Certs-Programms muss dieser Parameter
lediglich auf den Wert 'yes' gestellt werden. Die Einstellung
'no' deaktiviert das Certs-Programm.
Gueltige Werte: yes, no
Standardeinstellung: START_CERTS='no'
CERTS_CA_HOME
In einem Netzwerk waehlt man ueblicherweise einen EINZIGEN
Server aus, welcher als Zertifizierungstelle (Certificate
Authority (CA)) fungieren soll, um alle benoetigten, selbst
signierten, Zertifikate zur Verfuegung zu stellen. Durch Setzen
des Wertes 'yes' wird dieser Server identifiziert und alle
CA-spezifischen Funktionen aktiviert, der Wert 'no' sperrt
diese.
Gueltige Werte: yes, no
Standardeinstellung: CERTS_CA_HOME='no'
CERTS_HASH_ALGORITHM
Ueber diesen Parameter kann der standardmaessig zu verwendende
Hash Algorithmus konfiguriert werden, welcher fuer das Signieren
von Zertifikatsanforderungen verwendet werden soll. In der
Vergangenheit wurde von OpenSSL standardmaessig `sha1'
verwendet, welcher aber seit fast 10 Jahren als kompromittiert
angesehen werden kann. Aus diesem Grund wird nun standardmaessig
`sha384' verwendet. Aus Gruenden der Kompatibilitaet zu aelterer
Software oder Geraeten ist aber weiterhin die Auswahl von
weniger sicheren Hashes moeglich.
ACHTUNG
Es muss sicher gestellt werden, dass das Geraet auf welchem das
Zertifikat verwendet werden soll, auch in der Lage ist den
verwendeten Hash Algorithmus zu verwenden!
Gueltige Werte: sha1, sha224, sha256, (sha384), sha512
Standardeinstellung: CERTS_HASH_ALGORITHM='sha384'
CERTS_RSA_KEYBITS
Ueber diesen Parameter kann die standardmaessig zu verwendende
Groesse des RSA-Schluessels konfiguriert werden. Heutzutage wird
ein Wert von 2048 Bit als sicher eingestuft. Aus Gruenden der
Kompatibilitaet zu aelterer Software oder Geraeten ist aber
weiterhin die Auswahl von weniger Schluessellaengen moeglich.
Gueltige Werte: 1024, (2048), 4096, 8192
Standardeinstellung: CERTS_RSA_KEYBITS='2048'
CERTS_UNIQUE_SUBJECT (optionaler Parameter)
Optionaler Parameter: Ueber diesen Parameter kann festgelegt
werden, ob der Betreff (Subject) eines Zertifikats eindeutig
sein muss oder nicht. Die Einstellung 'no' erlaubt es, dass
mehrere Zertifikate den gleichen Betreff haben duerfen. Dies
erleichtert unter Umstaenden den Uebergang von einem kurz vor
dem Ablauf stehenden Zertifikat zum Folgezertifikat. Aus
Gruenden der Kompatibilitaet zu aelteren OpenSSL-Versionen ist
dieser Parameter standardmaessig auf 'yes' gesetzt.
Gueltige Werte: yes, no
Standardeinstellung: CERTS_UNIQUE_SUBJECT='yes'
CERTS_WEBSERVER_NAME (optionaler Parameter)
Optionaler Parameter: Ueber diesen Parameter kann der
standardmaessig verwendete Apache Webservername konfiguriert
werden. Es muss ein vollstaendiger Domainname (FQDN) angegeben
werden, z.B. Hostname und Domainname. Wird dieser Parameter
nicht gesetzt, so wird der ueber den Parameter
APACHE2_SERVER_NAME Name verwendet.
Gueltige Werte: vollstaendiger Domainname
Standardeinstellung: CERTS_WEBSERVER_NAME=''
CERTS_CA_BUNDLE_URL (optionaler Parameter)
Optionaler Parameter: Ueber diesen Parameter kann der Name der
CA-Bundle-Datei oder die vollstaendige URL zur CA-Bundle-Datei
festgelegt werden, welche bei Verwendung des Menuepunktes
'Download ca certificate bundle' herunter geladen werden soll.
Wird nur der Name der CA-Bundle-Datei angegeben, so wird
standardmaessig folgende URL vorangestellt:
http://anduin.linuxfromscratch.org/files/BLFS/
Gueltige Werte: Dateiname oder URL
Standardeinstellung: CERTS_CA_BUNDLE_URL=''
Die folgenden sieben Parameter (CERTS_CA_..) werden nur verwendet, wenn
dieser Server als Zertifizierungstelle (Certificate Authority (CA))
fungiert, d.h. der Parameter [1]CERTS_CA_HOME='yes' gesetzt wurde.
CERTS_CA_CCODE
Ueber diesen Parameter kann man den bei der Erstellung eines
CA-Zertifikats standardmaessig zu verwendenden, zweistelligen
Laenderkode festlegen.
Gueltige Werte: zweistelliger Laenderkode
Standardeinstellung: CERTS_CA_CCODE='DE'
CERTS_CA_STATE
Ueber diesen Parameter kann man den bei der Erstellung eines
CA-Zertifikats standardmaessig zu verwendenden Namen des States
oder der Provinz festlegen.
Gueltige Werte: Name des States oder der Provinz
Standardeinstellung: CERTS_CA_STATE='Nordrhein Westfalen'
CERTS_CA_LOCALITY
Ueber diesen Parameter kann man den bei der Erstellung eines
CA-Zertifikats standardmaessig zu verwendenden Ortsnamen
festlegen.
Gueltige Werte: Ortsname
Standardeinstellung: CERTS_CA_LOCALITY='Koeln'
CERTS_CA_ORGA_NAME
Ueber diesen Parameter kann man den bei der Erstellung eines
CA-Zertifikats standardmaessig zu verwendenden Namen einer
Organisation festlegen.
Gueltige Werte: Name der Organisation
Standardeinstellung: CERTS_CA_ORGA_NAME='eisfair CA'
CERTS_CA_ORGA_UNIT
Ueber diesen Parameter kann man den bei der Erstellung eines
CA-Zertifikats standardmaessig zu verwendenden Namen einer
Organisationseinheit festlegen.
Gueltige Werte: Name der Organisationseinheit
Standardeinstellung: CERTS_CA_ORGA_UNIT='My eisfair Certificate
Authority'
CERTS_CA_ADMIN_NAME
Ueber diesen Parameter kann man den bei der Erstellung eines
CA-Zertifikats standardmaessig zu verwendenden Namen des fuer
die CA verantwortlichen Administrators festlegen.
Gueltige Werte: Administratorname
Standardeinstellung: CERTS_CA_ADMIN_NAME='eisfair Administrator'
CERTS_CA_ADMIN_EMAIL
Ueber diesen Parameter kann man den bei der Erstellung eines
CA-Zertifikats standardmaessig zu verwendende E-Mail-Adresse des
fuer die CA verantwortlichen Administrators festlegen.
Gueltige Werte: E-Mail-Adresse des Administrators
Standardeinstellung: CERTS_CA_ADMIN_EMAIL=''
Die folgenden sechs Parameter (CERTS_CERT_..) werden bei der Erstellung
von Zertifikatsanfragen heran gezogen.
CERTS_CERT_CCODE
Ueber diesen Parameter kann man den bei der Erstellung eines
Zertifikats standardmaessig zu verwendenden, zweistelligen
Laenderkode festlegen.
Gueltige Werte: zweistelliger Laenderkode
Standardeinstellung: CERTS_CERT_CCODE='DE'
CERTS_CERT_STATE
Ueber diesen Parameter kann man den bei der Erstellung eines
Zertifikats standardmaessig zu verwendenden Namen des States
oder der Provinz festlegen.
Gueltige Werte: Name des States oder der Provinz
Standardeinstellung: CERTS_CERT_STATE='Nordrhein Westfalen'
CERTS_CERT_LOCALITY
Ueber diesen Parameter kann man den bei der Erstellung eines
Zertifikats standardmaessig zu verwendenden Ortsnamen festlegen.
Gueltige Werte: Ortsname
Standardeinstellung: CERTS_CERT_LOCALITY='Koeln'
CERTS_CERT_ORGA_NAME
Ueber diesen Parameter kann man den bei der Erstellung eines
Zertifikats standardmaessig zu verwendenden Namen einer
Organisationseinheit festlegen.
Gueltige Werte: Name der Organisationseinheit
Standardeinstellung: CERTS_CERT_ORGA_NAME='private'
CERTS_CERT_ORGA_UNIT
Ueber diesen Parameter kann man den bei der Erstellung eines
Zertifikats standardmaessig zu verwendenden Namen einer
Organisationseinheit festlegen.
Gueltige Werte: Name der Organisationseinheit
Standardeinstellung: CERTS_CERT_ORGA_UNIT='eisfair'
CERTS_CERT_REQ_NAME
Ueber diesen Parameter kann man den Namen der Person eintragen,
die standardmaessig als Zertifikatsanforderer agiert.
Gueltige Werte: Names des Zertifikatsanforderers
Standardeinstellung: CERTS_CERT_REQ_NAME='cert Requestor'
CERTS_CERT_REQ_EMAIL
Ueber diesen Parameter kann man den bei der Erstellung eines
Zertifikats standardmaessig zu verwendende E-Mail-Adresse des
Erstellers einer Zertifikatsanfrage festlegen.
Gueltige Werte: E-Mail-Adresse des Erstellers einer
Zertifikatsanfrage
Standardeinstellung: CERTS_CERT_REQ_EMAIL=''
CERTS_CRL_CRON
Wird dieser Parameter auf 'yes' gestellt, so werden
automatisiert die Zertifikatswiderrufslisten (Certificate
Revocation Lists (CRLs)) heruntergeladen, die Einstellung 'no'
deaktiviert diese Funktion. Dabei findet eine automatische
Aktualisierung zu dem in den CRL-Dateien angegebenen
Aktualisierungszeitpunkt statt.
Ueber den Parameter CERTS_CRL_CRON_SCHEDULE wird dabei der
Zeitintervall vorgegeben, in welchem eine Pruefung der erzeugten
Aktualisierungsaufgaben durchgefuehrt wird.
Hinweis
Da diese Funktion exzessiven Gebrauch des at-Programms macht,
ist es notwendig, dass in der base-Konfiguration der Parameter
START_ATD='yes' gesetzt ist.
Gueltige Werte: yes, no
Standardeinstellung: CERTS_CRL_CRON='yes'
CERTS_CRL_CRON_SCHEDULE
Ueber diesen Parameter wird festgelegt zu welchem Zeitpunkt bzw.
in welchem Intervall eine automatisierte Pruefung der erzeugten
CRL-Aktualisierungsaufgaben erfolgen soll. Da die CRL-Dateien
selbst zu dem in den Dateien angegebenen
Aktualisierungszeitpunkt herunter geladen werden, sollte diese
Pruefung nicht haeufiger als einmal pro Woche erfolgen. Dieser
Parameter wird nur verwendet, wenn CERTS_CRL_CRON='yes' gesetzt
wurde. Die fuenf Teilparameter haben dabei folgende Bedeutung:
1 - Minuten, 2 - Stunden, 3 - Tag des Monats, 4 - Monat, 5 -
Wochentag.
D.h. bei Verwendung der Standardeinstellung wird jeden Montag um
02:11h eine Aktualisierung durchgefuehrt. Wer Naeheres ueber die
verwendete Befehlssyntax erfahren moechte, sollte ueber eine
Internet-Suchmaschine nach 'man' und 'crontab' suchen.
Gueltige Werte: Crontab-spezifischer Parametereintrag
Standardeinstellung: CERTS_CRL_CRON_SCHEDULE='11 2 * * 1'
CERTS_LOG_COUNT
Ueber diesen Parameter wird eingestellt, wie viele Logdateien
vorgehalten werden sollen. Wird dieser Wert ueberschritten, so
wird die aelteste Logdatei geloescht.
Gueltige Werte: Zahl
Standardeinstellung: CERTS_LOG_COUNT='6'
CERTS_LOG_INTERVAL
Dieser Parameter bestimmt in welchen Intervallen die Logdateien
archiviert werden sollen. Zur Auswahl stehen die
Schluesselwoerter `daily' - taeglich, `weekly' - woechentlich
und `monthly - monatlich.
Gueltige Werte: daily, weekly, monthly
Standardeinstellung: CERTS_LOG_INTERVAL='weekly'
Die Zertifikate
Allgemeine Anmerkungen zum Zertifikatsmenue
Das Menue zur Zertifikatsgenerierung fasst alle notwendigen Schritte
zur Erstellung einer eigenen Zertifizierungsstelle (CA), einer Instanz
zum Ausstellen und Signieren eigener Zertifikate, und dem Generierung
eigener Server- oder Anwenderzertifikate zusammen.
Serverzertifikate werden, wie der Name vermuten laesst, zur eindeutigen
Identifikation von Servern, die z.B. Web- oder E-Mail-Services
anbieten, verwendet.
Anwenderzertifikate hingegen, dienen der eindeutigen Identifikation von
Anwendern, um z.B. E-Mail zu signieren oder sich an einem Server
anzumelden.
Beginnt ein Menueeintrag mit einem '==', so steht er fuer die gewaehlte
Funktion nicht zur Verfuegung. Wird ein Menueeintrag mit einem '>
' markiert, so kennzeichnet dies ueblicherweise den
naechsten, auszufuehrenden Prozessschritt. Ein mit einem 'v' markierter
Menuepunkt hingegen kennzeichnet einen bereits abgeschlossenen
Prozessschritt.
Erstellen einer eigenen Zertifizierungsstelle (CA)
Die Einleitung (CA)
Um eigene, selbst signierte Zertifikate erstellen und verwenden zu
koennen, muessen als erstes ein Schluessel und ein Zertifikat erstellt
werden, welche zur Identifikation der eigenen Zertifizierungsstelle
(CA) dienen. Das erstellte Zertifikat wird anschliessend verwendet, um
jedes weitere Server- bzw. Anwenderzertifikat zu signieren, d.h. zu
bestaetigen, dass es sich hierbei um ein gueltiges Zertifikat im
eigenen Netzwerk handelt. Diese Zertifikat dient NIEMALS selbst zur
Identifikation eines Servers!
Um es spaeter einem Webbrowser oder anderer Software, die eine
verschluesselte Verbindung zum eisfair-Server aufbauen moechte, zu
ermoeglichen, die erstellten Zertifikate pruefen zu koennen, ist es
darueber hinaus erforderlich dieses CA-Zertifikat in die
Zertifikatsspeicher der Geraete oder Programme zu importieren.
Ein CA-Zertifikat ist ueblicherweise 10 Jahre lang gueltig und kann
waehrend dieser Zeit verwendet werden um andere Zertifikate zu
unterzeichnen. Das bei der Erstellung des CA-Schluessels vergebene
Kennwort ist an einem sicheren Ort aufzuheben, da es nur nach Eingabe
dieses Kennwortes moeglich ist ein anderes Zertifikat zu unterzeichnen.
Um ein CA-Zertifikat zu erstellen, sind die folgenden Schritte
auszufuehren. Wird einer dieser Schritte nicht erfolgreich
abgeschlossen, so fuehrt dies zwangslaeufig zu einem Folgefehler bei
den nachfolgenden Schritten.
1.
Erstellen einer einmaligen Schluesseldatei (KEY).
2.
Erstellen und Signieren des eigenen CA-Zertifikats (CRT).
3.
Kopieren der Zertifikatsdatei in den Zertifikatsordner.
Folgende Informationen gilt es vorab zusammen zu tragen, da diese im
Laufe der CA-Zertifikatserstellung abgefragt werden:
1.
Welches Kennwort soll zur Verschluesselung des CA-Schluessels
verwendet werden? Dieses Kennwort wird benoetigt, um eine
Zertifikatsanfrage zu unterzeichnen und muss unbedingt geheim
gehalten werden, da sonst Dritte in der Lage waeren Zertifikate
mit diesem CA-Zertifikat zu unterzeichnen!
2.
Das Land, das Bundesland und der Ort in welchem die
Zertifizierungstelle betrieben wird.
Beispiel: DE (Deutschland), Nordrhein Westfalen, Koeln
3.
Die Organisation bzw. Organisationseinheit welche sich fuer die
Zertifizierungsstelle verantwortlich zeichnet.
Beispiel: eisfair CA, My eisfair Certificate Authority
4.
Der Name des Administrators der Zertifizierungsstelle (Dein
Name?)
Beispiel: Tom Johnes
5.
Optional die E-Mail-Adresse des Administrator, der kontaktiert
werden soll wenn es Fragen zum CA-Zertifikat oder einem von
dieser Zertifizierungsstelle unterzeichnetem Zertifikat gibt.
Beispiel: admin@local.lan
Die Zertifikatserstellung (CA)
1.
Ueber setup => Service Administration => Certs service => Manage
certificates startet man das Programm zur Zertifikatserstellung:
CAPTION: Abbildung: Zertifikatsmenue
2.
Ueber den Menuepunkt '1' waehlt man durch Auswahl von '1' die
Funktion 'Certificate Authority (CA)' aus.
CAPTION: Abbildung: CA-Funktionsauswahl
3.
Anschliessend erstellt man ueber den Menuepunkt '3' einen neuen
CA-Schluessel mit der in der Ueberschrift des Menueabsatzes
angezeigten Staerke von 2048 Bit (Durch Druecken von 'b' kann
diese Einstellung bei Bedarf zuvor angepasst werde) und vergibt
das in der Einleitung angesprochene Kennwort welches zukuenftig
beim Signieren von erstellten Zertifikaten eingegeben werden
muss.
CAPTION: Abbildung: CA-Schluessel erstellen - 1
CAPTION: Abbildung: CA-Schluessel erstellen - 2
4.
Nun waehlt man den Menuepunkt '4' um das selbst signierte
CA-Zertifikat zu erstellen. Alle fuer das Zertifikat
entscheidenden Informationen, welche man anfangs zusammen
getragen hat, werden nun eingegeben. Folgende Besonderheiten
gilt es zu beachten:
-
Die in eckigen Klammern angezeigten Standardwerte koennen
durch Druecken der Enter-Taste uebernommen werden.
-
Optionaler Werte, wie z.B. die E-Mail-Adresse, koennen
durch Eingabe von '.' uebersprungen werden.
CAPTION: Abbildung: CA-Zertifikat erstellen - 1
CAPTION: Abbildung: CA-Zertifikat erstellen - 2
5.
Ueber den Menuepunkt '5', wird im Anschluss das erzeugte
CA-Zertifikat in das korrekte Serververzeichnis kopieren.
CAPTION: Abbildung: CA-Zertifikat kopieren - 1
CAPTION: Abbildung: CA-Zertifikat kopieren - 2
6.
Damit ein Webbrowser bzw. Klientenrechner die von dieser
Zertifizierungsstelle erzeugten Zertifikatsdateien ueberpruefen
kann, sendet man sich das CA-Zertifikat bei Bedarf ueber die
E-Mail-Funktion, welche im Hauptmenue durch Druecken von 'e'
aufgerufen wird, zu und kopiert es anschliessend auf den
gewuenschten Klientenrechner.
Beim Import des CA-Zertifikats in den Zertifikatsspeicher des
gewuenschten Webbrowsers gilt es final noch die angezeigten
Verwendungszwecke zu bestaetigen.
CAPTION: Abbildung: CA-Zertifikat versenden - 1
CAPTION: Abbildung: CA-Zertifikat versenden - 2
Erstellen eines Serverzertifikates (CERT)
Die Einleitung (CERT)
Wie zuvor bereits geschrieben, identifiziert ein Serverzertifikat einen
einzelnen Server, jedoch nicht die einzelnen Services, wie z.B. einen
Web- oder E-Mail-Services, auf einem Server. Deshalb reicht es
ueblicherweise aus ein einziges Zertifikat auszustellen, auf welches
dann entsprechend den Anforderungen referenziert wird.
Um ein Zertifikat zu erstellen, ist eine immer gleiche Abfolge von
Schritten auszufuehren. Wird einer dieser Schritte nicht erfolgreich
abgeschlossen, so fuehrt dies zwangslaeufig zu einem Folgefehler bei
den nachfolgenden Schritten.
Die auszufuehrenden Schritte lauten wie folgt:
1.
Erstellen einer einmaligen Schluesseldatei (KEY).
2.
Erstellen einer Zertifikatsanforderung (CSR).
3.
Signieren der Zertifikatsanforderung mit dem CA-Zertifikat
(CRT).
4.
Erstellen der Diffie-Hellman Parameter.
5.
Erstellen einer vollstaendigen Zertifikatsdatei und das Kopieren
der Datei in den Zertifikatsordner.
Am Beispiel der Zertifikatserstellung fuer einen eisfair-Server, auf
dem ein Web- und E-Mail-Server installiert sind, sollen die notwendigen
Schritte nun veranschaulicht werden.
Folgende Informationen gilt es vorab zusammen zu tragen, da diese bei
der Zertifikatserstellung abgefragt werden:
1.
Wie lautet das urspruenglich festgelegte Kennwort des
CA-Zertifikates? Diese wird benoetigt, um eine
Zertifikatsanfrage zu unterzeichnen und muss unbedingt geheim
gehalten werden, da sonst Dritte in der Lage waeren eigene
Zertifikate mit diesem CA-Zertifikat zu unterzeichnen!
2.
Das Land, das Bundesland und der Ort in welchem der Server
betrieben wird.
Beispiel: DE (Deutschland), Nordrhein Westfalen, Koeln
3.
Die Organisation bzw. Organisationseinheit welche sich fuer den
eisfair-Server verantwortlich zeichnet.
Beispiel: privat, eisfair-Server
4.
Der DNS-Name bzw. die DNS-Namen ueber welche auf den
eisfair-Server zugegriffen werden soll. Dies ist ueblicherweise
der Name den ich z.B. in die Adresszeile des Webbrowsers
eingebe. Beispiel: mein-eisfair.local.lan
5.
Optional die E-Mail-Adresse des Administrator, der kontaktiert
werden soll wenn es Fragen zum Zertifikat zu klaeren gilt.
Beispiel: postmaster@local.lan
Die Zertifikatserstellung (CERT)
1.
Ueber setup => Service Administration => Certs service => Manage
certificates startet man das Programm zur Zertifikatserstellung:
CAPTION: Abbildung: Zertifikatsmenue
2.
Ueber den Menuepunkt '2' waehlt man durch Druecken von 'n' aus,
dass ein neues Zertifikat erstellt werden soll und gibt
anschliessend den primaeren DNS-Namen als Zertifikatsnamen ein.
Dies hat den Vorteil, dass man das Zertifikat spaeter jederzeit
dem richtigen Server zuordnen kann.
CAPTION: Abbildung: Zertifikatsnamen setzen
3.
Nun erstellt man ueber den Menuepunkt '10' und durch Druecken
von 'n', einen neuen Schluessel mit der in der Ueberschrift des
Menueabsatzes angezeigten Staerke von 2048 Bit (Durch Druecken
von 'b' kann diese Einstellung bei Bedarf zuvor angepasst
werde). Der standardmaessig verwendete Dateiname sollte
moeglichst beibehalten werden.
CAPTION: Abbildung: Schluessel erstellen - 1
CAPTION: Abbildung: Schluessel erstellen - 2
4.
Anschliessend waehlt man den Menuepunkt '11' um eine
Zertifikatsanforderung zu erstellen. Alle fuer das Zertifikat
entscheidenden Informationen, welche man anfangs zusammen
getragen hat, werden nun eingegeben. Folgende Besonderheiten
gilt es zu beachten:
-
Die in eckigen Klammern angezeigten Standardwerte koennen
durch Druecken der Enter-Taste uebernommen werden.
-
Optionaler Werte, wie z.B. die E-Mail-Adresse, koennen
durch Eingabe von '.' uebersprungen werden.
-
Will man ein Client-Zertifikat erstellen, um es z.B. zur
Identifikationen seiner persoenlichen Identitaet oder zum
Signieren von VBA-Makros zu verwenden, so muss man dies bei
der Abfrage des 'Common Name' durch das Voranstellen von
'USER:' kennzeichnen.
Beispiel:
USER: My name is Tom Jones
USER: Tom Jones VBA-Signing
-
Will man ein Server-Zertifikat erstellen, so koennen bei
der Abfrage des 'Common Name', dem Standardnamen des
eisfair-Servers, auf Wunsch mehrere Namen, durch Komma
getrennt, eingegeben werden. Durch Voranstellen von 'DNS:'
kennzeichnet man dabei einen DNS-Namen, durch Voranstellen
von 'IP:' eine IP-Adresse. Auf diese Weise ist es moeglich
den eisfair-Server ueber verschiedene Namen anzusprechen.
Wer ganz sicher gehen will, dass DNS-Namen bzw. IP-Adressen
korrekt erkannt werden, verwendet die beschriebenen
Praefixe, ansonsten wird versucht die Eingaben automatisch
zuzuordnen, was unter Umstaenden zu Fehlern fuehren kann.
Voraussetzung hierfuer ist es natuerlich, dass der
verwendete DNS-Server die Namen auch korrekt aufloest;-)
Beispiel:
DNS:mein-eisfair.local.lan,DNS:mail.local.lan,IP:192.168.6.
1
CAPTION: Abbildung: Zertifikatsanforderung erstellen - 1
CAPTION: Abbildung: Zertifikatsanforderung erstellen - 2
5.
Danach waehlt man den Menuepunkt '12' aus, um die zuvor
erstellte Zertifikatsanforderung zu unterzeichnen, d.h. zu
bestaetigen, dass dies ein gueltiges Zertifikat im eigenen
kleinen Netzwerk ist.
CAPTION: Abbildung: Zertifikat erstellen - 1
Falls man aufgefordert werden sollte die Zertifikatsdatenbank zu
aktualisieren sollte man dies bestaetigen, um sicher zu stellen,
dass diese den korrekten Status (gueltig, abgelaufen,
widerrufen) aller bisher generierten Zertifikate enthaelt. Hier
muss zum ersten Mal das geheime Kennwort des CA-Schluessels
eingegeben werden!
CAPTION: Abbildung: Zertifikat erstellen - 2
Im Anschluss werden die wichtigsten Details der
Zertifikatsanfrage am Bildschirm angezeigt. Dazu gehoeren der
verwendete Schluesseltyp, dessen Staerke (z.B. 2048 Bit), die
Adress- und Verwendungsdaten, sowie der bzw. die DNS-Namen
(Common Name) des Servers. Da im Beispiel nur ein DNS-Name
eingegeben wurde, wird logischerweise auch nur ein Name
angezeigt.
CAPTION: Abbildung: Zertifikat erstellen - 3
CAPTION: Abbildung: Zertifikat erstellen - 4
CAPTION: Abbildung: Zertifikat erstellen - 5
6.
Nachdem die Zertifikatsanforderung unterschrieben wurde, folgt
nun die Generierung der Diffie-Hellmann Parameter, welche fuer
den sicheren Schluesselaustausch beim Zugriff auf einen Dienst
benoetigt werden, indem man den Menuepunkt '13' anwaehlt.
CAPTION: Abbildung: Diffie-Hellman-Parameter erzeugen - 1
CAPTION: Abbildung: Diffie-Hellman-Parameter erzeugen - 2
7.
Ueber den Menuepunkt '14', werden im Anschluss die zuvor
erzeugten Zertifikatskomponenten in ein gemeinsame
Zertifikatsdatei zusammengefuehrt und in das korrekte
Serververzeichnis kopieren.
CAPTION: Abbildung: Zertifikat kopieren - 1
CAPTION: Abbildung: Zertifikat kopieren - 2
8.
Da viele Webbrowser Zertifikatsdateien nicht im PEM-Format
importieren koennen wird nun ueber den Menuepunkt '15' eine
Zertifikatsdatei im PKSC#12-Format erzeugt und mittels eines
Export-Kennwortes gesichert.
Die Zertifikatsdateien kann man sich bei Bedarf ueber die
E-Mail-Funktion, welche im Hauptmenue durch Druecken von 'e'
aufgerufen werden kann, zusenden und dann auf den gewuenschten
Klientenrechner kopieren. Beim Import in den Zertifikatsspeicher
des gewuenschten Webbrowsers muss das beim Export festgelegte
Kennwort eingegeben werden.
CAPTION: Abbildung: PKSC#12-Zertifikat erzeugen - 1
CAPTION: Abbildung: PKSC#12-Zertifikat erzeugen - 2
9.
Damit Web- und E-Mail-Server nun das erzeugte Zertifikat
verwenden koennen, muessen abschliessend, durch Aufruf des
Menuepunktes '16', symbolische Links angelegt werden, die auf
die Zertifikatsdatei verweisen.
Der Apache2-Webserver sucht z.B. standardmaessig nach einer
Zertifikatsdatei mit dem Namen 'apache.pem', der Exim
E-Mail-Server hingegen verwendet standardmaessig die Dateinamen,
'imapd.pem', 'ipop3d.pem' und exim.pem' um eine Zertifikatsdatei
zu laden, abhaengig von dem angesprochenen Programmmodul.
CAPTION: Abbildung: Symbolische Links erzeugen - 1
Durch Auswahl der Unterpunkte '1' bzw. '3' kann man dann die
benoetigten symbolischen Links anlegen. Zur Bestaetigung wird
anschliessend der Verweis auf die Zertifikatsdatei hinter den
entsprechenden Dateinamen angezeigt (-> mein-eisfair.local.lan).
CAPTION: Abbildung: Symbolische Links erzeugen - 2
Ein Zertifikat widerrufen
Will man ein Zertifikat widerrufen, so geht man wie folgt vor.
ACHTUNG
Einmal widerrufende Zertifikate kann und sollte man normalerweise nicht
wieder reaktivieren.
1
Ueber den Menuepunkt 1 waehlt man den Key-Typ 1 'Certificate
Authority (CA)' aus.
2
Ueber den Menuepunkt 7 'revoke a certificate' ruft man die
Widerrufsfunktion auf.
3
Aus der angezeigten Liste der vorhandenen Zertifikate waehlt man
das zu widerrufende Zertifikat, durch Eingabe der
vorangestellten Ziffer, aus.
4
Aus der angezeigten Liste der Widerrufsgruende waehlt man den zu
verwendenden Grund fuer den Widerruf aus.
5
Den Widerruf des Zertifikats muss man nun noch durch Eingabe des
CA-Schluessel Kennwortes bestaetigen.
6
Danach wird man gefragt, ob auch gleich die Widerrufsliste
aktualisiert werden soll. Beantwortet man die Abfrage 'Update
revocation list' mit 'yes', so wird nach erneuter Eingabe des
CA-Schluessel Kennwortes die Widerrufsliste aktualisiert.
Die Widerrufsliste aktualisieren
Will man die Liste der widerrufenden Zertifikate aktualisieren, so geht
man wie folgt vor:
1
Ueber den Menuepunkt 1 waehlt man den Key-Typ 1 'Certificate
Authority (CA)' aus.
2
Ueber den Menuepunkt 8 'update revocation list' ruft man die
Funktion zur Aktualisierung der Widerrufsliste auf.
3
Danach wird man gefragt, ob die Widerrufsliste wirklich
aktualisiert werden soll. Beantwortet man die Abfrage 'Update
revocation list' mit 'Y'es, so wird man noch nach der
gewuenschten Gueltigkeitsdauer der CRL und dem CA-Schluessel
Kennwort gefragt. Wurden diese eingegeben, so wird die
Widerrufsliste aktualisiert.
Ein Zertifikat aktualisieren
Einmal im Jahr kommt der Zeitpunkt, dass z.B. das Mail-Paket ein
auslaufendes SSL-Zertifikat meldet. Spaetestens dann ueberlegt man, wie
man dieses im Vorjahr aktualisiert hat.
In dieser Beschreibung wird davon ausgegangen, dass ein Mail-Paket auf
dem Server mit dem Hostnamen 'florence' laeuft und dessen
Mail-Domainname 'mail.nightingale.de' lautet. Folgende Schritte muessen
hierfuer durchgefuehrt werden:
1
Erst einmal schaut man sich den Inhalt des aktuellen
Zertifikates an, um sich bewusst zu machen, welche Informationen
in der Datei enthalten sind bzw. mit welchen das existierende
Zertifikat beantragt wurde. Hierzu gibt man an der Konsole
folgenden Befehl ein und notiert sich die Bildschirmausgaben
(man kann diese natuerlich auch in eine Datei schreiben lassen).
openssl x509 -in /usr/local/ssl/certs/mail.nightingale.de.pem
-noout -text
2
Dann ruft man im Setup-Menue die folgenden Menuepunkte auf um in
die Zertifikatsverwaltung zu gelangen:
-> Service administration
-> Certs Service
-> Manage certificates
2.1
Dort angelangt waehlt man den Menuepunkt 1 (change/set key type)
und selektiert Punkt 2 (Client/server certificate).
2.2
Anschliessend waehlt man den Menuepunk 2 (change/set certificate
name) und gibt den Domainnamen des Servers ein, fuer den ein
Zertifikat erneuert werden soll:
Eingabe: mail.nightingale.de
2.3
Im folgenden Schritt waehlt man ueber den Menuepunkt '10',
'select existing key' aus und selektiert aus der
angezeigten Schluesselliste die Datei 'florence.key'.
2.4
Nach diesen Vorbereitungen muss nun der vom Vorjahr bereits
existierende Zertifikatsanforderung mit dem CA-Schluessel
signiert werden. Hierzu waehlt man den Punkt 12 (sign
certificate request with CA key) und folgt den
Bildschirmausgaben. Nun gilt es nur noch eine Entscheidung zu
treffen, ob man ein Server- (Server usage) oder ein
Anwenderzertifikat fuer z.B. S/MIME (Client usage) erstellen
moechte und schon hat ein ein aktualisiertes Zertifikat
erstellt.
-> The certificate /usr/local/ssl/newcerts/mail.nightingale.de.crt
has already been signed, proceed anyway (y/N):
Eingabe: y (yes)
Eingabe: Enter
-> Using configuration from /usr/local/ssl/openssl.cnf
Enter pass phrase for /usr/local/ssl/private/ca.key:
Eingabe: geheimes CA Kennwort
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'DE'
stateOrProvinceName :PRINTABLE:'Nordrhein Westfalen'
localityName :PRINTABLE:'Duesseldorf'
organizationName :PRINTABLE:'Guru Mail Admin'
organizationalUnitName:PRINTABLE:'My Email Services'
commonName :PRINTABLE:'mail.nightingale.de'
Certificate is to be certified until Oct 26 19:52:11 2007 GMT (365 days)
Sign the certificate? [y/n]:
Eingabe: y (yes)
1 out of 1 certificate requests certified, commit? [y/n]
Eingabe: y (yes)
Write out database with 1 new entries
Data Base Updated
/usr/local/ssl/newcerts/mail.nightingale.de.crt: OK
2.5
Nach der erfolgreichen Unterzeichnung des Zertifikates muss noch
ueber den Menuepunkt 13 ein 'Diffie-Hellman Parameter' generiert
werden, falls dieser nicht schon existiert.
2.6
Abschliessend wird das Zertifikat mittels des Menuepunktes 14 in
eine .pem-Datei umgewandelt, in das Zertifikatsverzeichnis
kopiert und die Hashwerte aktualisiert:
-> create .pem certificate and copy it to /usr/local/ssl/certs - done.
-> The certificate /usr/local/ssl/certs/mail.nightingale.de.pem does
already exist, proceed anyway (y/N)
Eingabe: y (yes)
Verschiedenes
Der Abruf eines Server-Zertifikates
Will man die E-Mail-Uebermittlung von und zu seinem Provider ueber ein
TLS-Zertifikat absichern, so muss man sich dieses zuvor von dessen
Mail-Server herunterladen und auf seinem eigenen Mail-Server
installieren. Am Beispiel einiger bekannter E-Mail-Provider soll dies
exemplarisch verdeutlicht werden. Der aufgefuehrte Befehl wird bei
POP3-Servern verwendet, bei IMAP-Servern muss an Stelle von 995 der
Port 993 angegeben werden.
web.de: openssl s_client -connect pop3.web.de:995 -showcerts
gmx.net: openssl s_client -connect pop.gmx.net:995 -showcerts
Aus den angezeigten Informationen wird der Datenblock, welcher durch
'---BEGIN CERTIFICATE---' und '---END CERTIFICATE---' gekapselt ist,
markiert und in eine Datei mit z.B. dem Namen 'web.de-pop3.pem'
kopiert. Die Datei muss dann im Verzeichnis /usr/local/ssl/certs
abgelegt werden.
Beispiel:
-----BEGIN CERTIFICATE-----
MII[...]
-----END CERTIFICATE-----
Fuer alle Zertifikate muss ein Hash-Schluessel durch Aufruf von
'/var/install/bin/certs-update-hashes' (Menuepunkt: 1 - certificate
folder) angelegt werden.
Die Liste der Zertifikatswiderrufslisten anpassen
Soll eine weitere Zertifikatswiderrufsliste (CRL) automatisch
heruntergeladen werden, so muss deren URL zur Datei
/usr/local/ssl/certs-update-crl-lists hinzugefuegt werden. Danach kann
man ueber den Menuepunkt 'Download revocation list(s)' das
Herunterladen der CRLs anstossen. Automatisiert geschieht dies wenn
[2]CERTS_CRL_CRON='yes' gesetzt und ein Intervall ueber den Parameter
[3]CERTS_CRL_CRON_SCHEDULE definiert wurde.
Die PKI-Policy erstellen bzw. anpassen
Standardmaessig wird im Verzeichnis /usr/local/ssl/web die Datei
x509policy.html angelegt, welche, bei einem installiertem
Apache2-Paket, ueber die folgende URL abgerufen werden kann und auf
welche in jedem selbst erstelltem Zertifikat referenziert wird:
http://APACHE2_SERVER_NAME/certs/x509policy.html
Diese Datei enthaelt erste Hinweise fuer das Erstellen einer eigenen
PKI-Policy, welches es bei Bedarf zu erstellen gilt.
Den Inhalt von Zertifikaten anzeigen
Ueber verschiedenste Befehle kann man sich Informationen aus den
Zertifikaten anzeigen lassen:
Zertifikat in Textform ausgeben:
openssl x509 -in gmx.net-pop3.pem -noout -text
Zertifikat-Betreff ausgeben:
openssl x509 -in gmx.net-pop3.pem -noout -subject
Zertifikat-Aussteller ausgeben:
openssl x509 -in gmx.net-pop3.pem -noout -issuer
Zertifikat-Laufzeit ausgeben:
openssl x509 -in gmx.net-pop3.pem -noout -dates
MD5-Fingerprint ausgeben:
openssl x509 -in gmx.net-pop3.pem -noout -fingerprint -md5
__________________________________________________________________
Juergen Edner 2018-01-20
References
1. file://localhost/data/home_work/jed/svn/eis-trunk/doc/output/certs/certs.tmp#CERTSCAHOME
2. file://localhost/data/home_work/jed/svn/eis-trunk/doc/output/certs/certs.tmp#CERTSCRLCRON
3. file://localhost/data/home_work/jed/svn/eis-trunk/doc/output/certs/certs.tmp#CERTSCRLCRONSCHEDULE