Zertifikate

Aus Arktur
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Dateien

Aus http://board.gulli.com/thread/895992-openssl-easy-rsa-wozu-dienen-die-pem-dateien/

  • Was ist der öffentliche Schlüssel?
    • Der öffentliche Schlüssel steckt im Zertifikat. (crt)
  • welches der Private?
    • key ist der private Schlüssel und muss gut bewacht werden.
   chmod go-rwx *.key
  • Und in welchen Verhältnis steht die Endung pem?
    • Pem ist das Format. Du kannst die Files nennen wie du willst. z.B. .crt, .key und .csr.
  • csr?
    • Das ist der certificate sign request. Und der enthält den privaten Schlüssel nicht. Er wird für die SSL-Kommunikation nicht benötigt und muss deshalb nicht auf dem Server liegen.
    • Das CSR-File ist der Request und ist für die Akten.
  • CA?
    • Das CA-File ist die ausstellende CA.
    • Bei Selfsigned-Zertifikaten lässt man die Option einfach weg. (Auch bei öffentlichen Zertifikaten, deren CA in den CA-Speichern der Clients enthalten ist, ist es nicht nötig, das extra anzugeben.)

Da die Zertifikate an einen Hostname (CN) gebunden sind und nicht an eine Applikation, kannst du ein Zertifikat für alle Services benutzen, die über diesen Hostname angesprochen werden.

Aus https://systemausfall.org/wikis/howto/ZertifikatErstellung

  • Schluessel (key)
    • ein (asymmetrisches) rsa-Schluesselpaar mit gewaehlter Schluessellaenge (hier: 1024, groessere Schluessel werden von manchen Browsern nicht verstanden)
  • Schluesselinformationen (req)
    • Herkunftsinformationen, die dem Nutzer gezeigt werden, wenn er das Zertifikat annehmen soll; wichtig dabei ist der "Common Name" (CN) - im Falle des Webservers sollte es die URL der betreffenden Domain sein
  • Certificate Signing Request (csr)
    • die Kombination aus Schluessel und dazugehoerigen Informationen; dies laesst sich bereits zur Verschluesselung per ssl verwenden, jedoch ist es hier moeglich, die Informationen unabhaengig vom Schluessel zu manipulieren, bzw. umgekehrt
  • Zertifikat (crt)
    • der beschriebene "Certificate Signing Request" wird mit dem privaten Schluessel einer Certificate Authority (CA) signiert und ist somit vor unbemerkten Manipulationen geschuetzt
  • pem
    • Beispiele siehe /etc/ssl/certs - zum Verifizieren (beispielsweise einer CA) noetig

Zertifikate erzeugen und pflegen

erzeugen

Bei der Installation von Arktur (genauer: beim Verarbeiten des Systemnamens) wird mit dem Skript "/usr/lib/ods-server/bin/zertifiziere" auch ein Zertifikat erzeugt und als "/etc/ssl/server.crt" abgelegt. Es benutzt denjenigen Domain-Namen, der auch mit

domainname

angezeigt wird. Es arbeitet so ähnlich wie das Skript "make-ssl-cert" aus dem Ubuntu-Paket "ssl-cert".

Für OpenVPN wird diese Arbeit mit dem Skript "/etc/openvpn/mach-CA" erledigt (sollte vereinheitlicht werden).

pflegen

Anwendungen

Vermutlich können Zertifikat und Schlüssel für die verschiedenen Anwendungen allesamt auf jeweils 1 Datei verlinkt werden.

Es könnte sinnvoll sein, diese jeweils einzige Datei unterhalb von "/etc/openssl" abzulegen.

Apache

Apache 1.3

  • Datei "/etc/apache/mod_ssl.conf"
    • SSLCertificateFile "/etc/apache/ssl.crt/server.crt"
    • SSLCertificateKeyFile "/etc/apache/ssl.key/server.key"

Apache 2.x

  • Datei /etc/httpd/extra/httpd-ssl.conf
    • SSLCertificateFile "/etc/httpd/server.crt"
    • SSLCertificateKeyFile "/etc/httpd/server.key"

Courier

  • Datei "/etc/courier/imap/imap-ssl.dist"
    • TLS_CERTFILE=/usr/share/imapd.pem
  • Datei "/etc/courier/imap/pop3d-ssl.dist"
    • TLS_CERTFILE=/usr/share/pop3d.pem

Dovecot

    • ssl_cert_file = /etc/postfix/tls/mail.cert
    • ssl_key_file = /etc/postfix/tls/mail.key

OpenSSL

  • Datei "/etc/ssl/openssl.cnf", Abschnitt "[ CA default ]"
    • certificate = ./ca.cert
    • private_key = ./ca.key

OpenVPN

  • Datei "/etc/openvpn/server.conf"
    • cert server.crt
    • key server.key

Postfix

  • Datei "/etc/postfix/main.cf"
    • smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
    • smtpd_tls_cert_file = /etc/postfix/ssl/certs/postfixcert.pem
    • smtpd_tls_key_file = /etc/postfix/ssl/certs/postfixkey.pem

SNI

"Server Name Indication" erlaubt

  • einen URL statt einer (festen) IP-Adresse zur Identifizierung des Systems zu benutzen
  • mehrere URLS für "virtuelle hosts" zu benutzen

Skript aus "Eine für alle" an Arktur angepasst:

#! /bin/bash
# Skript Mehrere SSL-Zertifikate pro IP-Adresse unter Apache 2.x, S. 174
# Korrektur c't
#
# Arktur/Slackware: Verzeichnis "/etc/httpd"
test $(id -u) -eq 0 || exit 1
cd /etc/httpd
meinCN=$(hostname)
#
openssl req -new -x509 -nodes -sha1 -subj "/CN=SNI Demo CA" -keyout ca.key -out ca.crt.pem
#
openssl req -new -nodes -subj /CN=$meinCN -keyout arktur.key | \
 openssl x509 -req -days 1825 -CA ca.crt.pem -CAkey ca.key -CAcreateserial -sha1 -out arktur.crt.pem
ln -s arktur.crt.pem server.crt
ln -s arktur.key server.key  # damit .../extra/httpd-ssl.conf nicht angepasst werden muss
chmod 600 arktur.key
#
openssl req -new -nodes -subj /CN=alice.example.com -keyout alice.key | \
 openssl x509 -req -days 1825 -CA ca.crt.pem -CAkey ca.key -sha1 -out alice.crt.pem
#
openssl req -new -nodes -subj /CN=bob.example.org -keyout bob.key | \
 openssl x509 -req -days 1825 -CA ca.crt.pem -CAkey ca.key -sha1 -out bob.crt.pem
#

Weblinks