Spacewalk – SSL Zertifikat
Februar 18th, 2010 | Spacewalk | Beitrag drucken
Ich freue mich euch den ersten Artikel in der neuen Blogkategorie ‘Spacewalk’ vorstellen zu duerfen. Hier findet Ihr in Zukunft interessante Tips und Neuigkeiten zu der Open Source Linux Lifecycle Management Lösung.
Im heutigen HowTo geht es darum das auf dem Spacewalk eingesetzte SSL Zertifikat neu zu erstellen und von einer ‘offiziellen’ Zertifizierungsstelle signieren zu lassen..
Zertifikat erstellen
Während der Installation eines Satellite/Spacewalk 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.
Falls noch keine CA erzeugt wurde muss dies zunächst mit Hilfe von:
rhn-ssl-tool --gen-ca
nachgeholt werden.
Soll nun ein neues Server Zertifikat erstellt werden, geschieht dies mit folgendem Programmaufruf: (Die Parameter müssen natürlich 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.
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.crt -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
Abschliessend kann der Satellite/Spacewalk 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 ggfls. angepasst werden.
