Konfiguration des WWW-Servers Apache
Stand: 13.02.2009
Dies ist keine fertige Anleitung, hilft Ihnen aber vielleicht über einige Verständnishürden hinweg.
Um bei einem Apache-Server einen mit SSL bzw. TLS abgesicherten Zugang anzubieten, können Sie folgende Zeilen in der Konfiguration ergänzen. (Diese Anleitung gilt ab Apache 2.0.)
Listen 443
<VirtualHost _default_:443>
SSLCertificateKeyFile /pfad/zur/datei/mit/geheimem/schluessel.pem
SSLCertificateFile /pfad/zur/datei/mit/zertifikat.pem
SSLCertificateChainFile /pfad/zur/datei/mit/x.509/kette.pem
SSLEngine on
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
# weitere Anweisungen, siehe unten
<Directory "/pfad/zu/cgi-bin">
SSLOptions +StdEnvVars +ExportCertData
</Directory>
</VirtualHost>
Wenn Sie zusätzlich für den gesammten SSL-/TLS-gesicherten Bereich erzwingen möchten, dass die Clients sich mit einem Client-Zertifikat aus der Global-Hierarchie der DFN-PKI ausweisen, ergänzen Sie bitte an der oben markierten Stelle folgende Zeilen:
SSLCACertificateFile /pfad/zur/datei/mit/x.509/kette.pem SSLVerifyClient require SSLVerifyDepth 3
Wenn Sie die Verwendung von Client-Zertifikaten nur für einen Teil des SSL-/TLS-gesicherten Bereichs erzwingen möchten, müssen Sie wegen eines Fehlers in älteren Versionen mindestens die Apache-Version 2.2.7 einsetzen und verwenden dann etwa folgende Zeilen:
Listen 443
<VirtualHost _default_:443>
SSLCertificateKeyFile /pfad/zur/datei/mit/geheimem/schluessel.pem
SSLCertificateFile /pfad/zur/datei/mit/zertifikat.pem
SSLCertificateChainFile /pfad/zur/datei/mit/x.509/kette.pem
SSLEngine on
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCACertificateFile /pfad/zur/datei/mit/x.509/kette.pem
<Directory "/pfad/zu/cgi-bin">
SSLOptions +StdEnvVars +ExportCertData
</Directory>
<Directory "/pfad/zum/besonders/geschuetzten/verzeichnis">
SSLVerifyClient require
SSLVerifyDepth 3
SSLOptions +StrictRequire
</Directory>
</VirtualHost>
Wenn Sie nicht sämtliche zertifizierten Nutzer zulassen
möchten, sondern beispielsweise nur solche, die ein von der WWUCA
ausgestelltes Zertifikat mit einer E-Mail-Adresse aus dem Bereich der
Universität Münster haben, dann geht das leider nicht ganz so
einfach, denn die Liste der E-Mail-Adressen in einem Zertifikat wird
vom Apache-Server nicht in einer mit SSLRequire
auswertbaren Umgebungsvariablen zur Verfügung gestellt. Aber falls
Sie CGI-Programme schützen möchten, könnten diese das
folgende Shellskript als Hilfsprogramm aufrufen, welches alle
Universitäts-E-Mail-Adressen im Zertifikat ausgibt:
#!/bin/sh [ "$SSL_CLIENT_VERIFY" = "SUCCESS" ] && [ "$SSL_CLIENT_I_DN" = "/C=DE/O=Universitaet Muenster/CN=Zertifizierungsstelle Universitaet Muenster - G02/emailAddress=ca@uni-muenster.de" ] && echo "$SSL_CLIENT_CERT" | openssl x509 -noout -email | egrep '[@.](wwu|uni-muenster.de)\.de$'

