Satellite SSL Zertifikat

ACHTUNG: diese Seite ist nicht mehr aktuell    /   ATTENTION: this page is no longer up-to-date


Während der Installation eines Satellite Servers wird in der Regel ein selbst signiertes Zertifikat erstellt (falls die Option --skip-ssl-cert-generation nicht aktiviert wurde). Dieser Vorgang kann auch nachträglich mit Hilfe von rhn-ssl-tool wiederholt werden. Auch wenn Sie das Zertifikat später von einer offiziellen CA signieren lassen möchten, benötigt rhn-ssl-tool eine aktive CA zur Erstellung von Zertifikaten und Zertifikat Requests (csr). Falls noch keine CA erzeugt wurde kann dies mit Hilfe von:

rhn-ssl-tool --gen-ca

nachgeholt werden. Soll ein neues Server Zertifikat erstellt werden, geschieht dies mit folgendem Programmaufruf: (Die Parameter müssen an die örtlichen Gegebenheiten angepasst werden)

rhn-ssl-tool --gen-server --dir="/root/ssl-build" --set-state="Zurich" --set-city="Zuerich" --set-org="MyOrg" --set-org-unit="MyOrg Unit" --set-email="admin@mydomain.ch" --set-hostname="$(hostname)"

Hinweis: Bei der Verwendung eines Aliases ist es wichtig dies mit der Variable --set-hostname entsprechend anzupassen, da sonst der tatsächliche Hostname des Systems genutzt wird. Das zuvor vergebene CA Passwort wird als Eingabe erwartet. Weitere Informationen zur Verwendung von rhn-ssl-tool finden sich in der Red Hat Knowledge Base (http://kbase.redhat.com/faq/docs/DOC-10811)

Zertifikat signieren

Hinweis: In den folgenden Beispielen gehen wir aber von der Verwendung des tatsächlichen Hostnames aus. Wird ein Alias genutzt muss $(hostname -s) durch dieses ersetzt werden.

Um das Zertifikat bei einer offiziellen CA signieren zu lassen muss der Certificate signing request /root/ssl-build/$(hostname -s)/server.csr bei der Zertifizierungsstelle eingereicht werden.

Diese stellt dann in der Regel ein signiertes .pem oder .crt File zur Verfügung. Falls das Zertifikat nicht im richtigen Format vorliegt kann es mit Hilfe von:

openssl x509 -in $MYCERT -text > /root/ssl-build/$(hostname -s)/server.crt

umgewandelt werden und direkt an die richtige Stelle kopiert werden, wobei $MYCERT durch das erhaltene Zertifikat ersetzt werden muss.

Server Zertifikat RPM erstellen und einspielen

Das signierte Zertifikat muss nun auf dem System eingespielt und verfügbar gemacht werden.

cd /root/ssl-build/$(hostname -s); cat server.crt server.key > server.pem

Das benötigte RPM Paket kann mit rhn-ssl-tool erstellt und mit rpm installiert werden. Der genaue Pfad und Dateiname des noarch RPM wird während des Scriptaufrufes ausgegeben:

cd /root; rhn-ssl-tool --gen-server --rpm-only --set-hostname="$(hostname)"; rpm -Fvh /root/ssl-build/$(hostname -s)/rhn-org-httpd-ssl-key-pair-spacewalk-1.0-2.noarch.rpm

Jabber erwartet das Zertifikat in /etc/jabberd

cp /root/ssl-build/$(hostname -s)/server.pem /etc/jabberd/server.pem

Mit Hilfe von:

chown jabber:jabber /etc/jabberd/server.pem

werden die benötigten Besitzrechte erteilt und bei aktivem SELinux mit:

chcon -t cert_t /etc/jabberd/server.pem; semanage fcontext -a -t cert_t /etc/jabberd/server.pem

der Filekontext neu gesetzt. Abschliessend kann der Satellite mit rhn-satellite restart neu gestartet werden.

Root CA Zertifikat einrichten

Nun kann das Root Zertifikat der CA auf dem System eingespielt und verfügbar gemacht werden. Im folgenden Beispiel wird davon ausgegangen das sich das Root Zertifikat der Zertifizierungsstelle unter /root/ssl-build/root.crt befindet.

openssl x509 -in /root/ssl-build/root.crt -text > /root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT; cp /root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT /var/www/html/pub/

Mit Hilfe von:

cd /root; rhn-ssl-tool --gen-ca --rpm-only; cp /root/ssl-build/rhn-org-trusted-ssl-cert-1.0-2.noarch.rpm /var/www/html/pub

wird ein entsprechendes RPM Paket erstellt. Auch hier wird der genaue Pfad während des Scriptaufrufes ausgegeben und muss gegebenenfalls angepasst werden.