Skip to main content

Apache-Passwort

von Rainer Vorauer

Apache verlangt nach einem Passwort beim Neustart?

Das Problem hatte ich leider auch schon, da ich beim ersten Versuch die Dokumentation von Digicert nicht genau gelesen habe. Es gibt die Möglichkeit das Zertifikat neu auszustellen, also „revoken“, dass natürlich auch die sauberste Lösung darstellt. Wenn dieser Lösungsansatz nicht gewollt ist, wird dieser Artikel etwas für Sie sein.

Wie geht’s?

Ich könnte auch jetzt einige Details zu Zertifikaten beschreiben, jedoch spar ich mir das und verweise auf: Digicert Doku 😉

Also wie anfangs erwähnt, fragt der Apache-Daemon immer nach einem Passwort beim Neustart. Natürlich blöd, wenn der Server oder das Service neugestartet wird. Deswegen gibt es folgenden Lösungsansatz:

Es muss eine ausführbares Bash-Script erstellt werden mit folgendem Inhalt:

#!/bin/sh

echo "Passwort"

Das Script habe ich in /etc/apache2/conf.d/passphrase-file abgelegt und mich vergewissert ob der Ordner „/etc/apache2/conf.d“ in der Apache-Config berücksichtigt wird. Danach muss das Script noch ausführbar gemacht werden.

chmod +x /etc/apache2/conf.d/passphrase-file

Mit chmod kann natürlich auch die entsprechende Berechtigung gesetzt werden.

Zu guter Letzt bringen wir den Apache-Daemon bei, dass beim Starten das vorher erstelle Bash-Script verwendet wird. Und zwar muss in der „/etc/apache2/ssl-global.conf“ folgendes geändert werden:

<IfModule mod_ssl.c>

 

        #

        #   Some MIME-types for downloading Certificates and CRLs

        #

        AddType application/x-x509-ca-cert .crt

        AddType application/x-pkcs7-crl    .crl

 

        #   Pass Phrase Dialog:

        #   Configure the pass phrase gathering process.

        #   The filtering dialog program (`builtin' is a internal

        #   terminal dialog) has to provide the pass phrase on stdout.

        <IfDefine SYSTEMD>

        #SSLPassPhraseDialog exec:/usr/sbin/apache2-systemd-ask-pass

        SSLPassPhraseDialog exec:/etc/apache2/conf.d/passphrase-file

        </IfDefine>

        <IfDefine !SYSTEMD>

        SSLPassPhraseDialog  builtin

        </IfDefine>

            ....

            ....

            ....

            ....

</IfModule>

 

Fazit

Ich muss am Schluss noch erwähnen, dass dies nicht schönste Lösung ist! Die erwähnte Lösung gilt für OpenSuse und kann je nach Linux-Distribution abweichen.