Spacewalk – SSL Zertifikat

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

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 server.pem /etc/jabberd/server.pem

der Filekontext neu gesetzt.

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.

About Marcus

Comments

One Response to “Spacewalk – SSL Zertifikat”
  1. Marcus sagt:

    20101117 aktualisiert: Informationen über Besitzrechte auf das Jabber pem File hinzugefügt.

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!