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.