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$'

Impressum | © 2010 Universität Münster
Zentrum für Informationsverarbeitung (ZIV)
Zertifizierungsstelle der Universität Münster (WWUCA) · 48149 Münster
Tel.: +49 251 83-31600 · Fax: +49 251 83-31555
E-Mail: