Sie befinden sich hier: eisfair / Pack-Eis
News News News

Navigation

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