Apache 2.x WebServer: Unterschied zwischen den Versionen

Aus SSLplus
Zur Navigation springen Zur Suche springen
Zeile 37: Zeile 37:


<source lang=apache>
<source lang=apache>
<VirtualHost 10.0.0.1:800>
  ServerName server1.example.org
  ServerAlias www.server1.example.org
  DocumentRoot /var/www
  CustomLog /var/log/apache2/vh1_access_log combined
  ErrorLog /var/log/apache2/vh1_error_log
  ServerAdmin webmaster@localhost
  <Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
  </Directory>
</VirtualHost>
<VirtualHost 10.0.0.1:443>
<VirtualHost 10.0.0.1:443>
  ServerName server1.example.org
  ServerAlias www.server1.example.org
  DocumentRoot /var/www
  CustomLog /var/log/apache2/vh1_access_log combined
  ErrorLog /var/log/apache2/vh1_error_log


...
  ServerAdmin webmaster@localhost


  <Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
  </Directory>
</VirtualHost>
</VirtualHost>
</source>
</source>

Version vom 21. Juli 2015, 10:40 Uhr

Installation eines SSL Zertifikates für den Apache Webserver 2.x

Vorbereitungen

Für die Installation des Zertifikates benötigen Sie:

Wenn die Zwischenzertifikate von der CA nicht mit dem eigentlichen Zertifikat ausgeliefert wurden, bietet die jeweilige Zertifizierungsstelle eine Möglichkeit diese zu beziehen.

Bezugsquellen für Intermediate Zertifikate

Ablage von Zertifikaten und Schlüssel

Für die Ablage bietet sich die Verzeichnisstruktur unter /etc/ssl an.

<source lang=bash> /etc/ssl/private /etc/ssl/certs </source>

Im Verzeichnis private werden die privaten Schlüssel abgelegt. Im Verzeichnis certs werden die Zertifikate gespeichert.

Entscheidet man sich, die Intermediate Zertifikate auch unter /etc/ssl/certs abzulegen, müssen noch die Links in Form von Prüfsummen erzeugt werden, die eine Funktion mit dem Parameter SSLCACertificatePath erlauben.

Der einfachste Weg wäre der Aufruf des Scripts c_hash. Das Programm gehört zum Lieferumfang von OpenSSL. Sollte es sich nicht im Suchpfad finden lassen, liegt es häufig im Dokumentationsverzeichnis des OpenSSL Programmpaketes (zB /usr/local/doc/openssl/).

Anpassung der Konfiguration

Die Önderungen an der Konfiguration werden in der Regel an der VHost Konfiguration vorgenommen. Diese findet sich unter /etc/apache2/sites-available/ oder verlinkt auch hier /etc/apache2/sites-enabled/.

Um SSL anzuschalten legen Sie eine Kopie des VHosts an, der auf Port 80 horcht.

<source lang=apache> <VirtualHost 10.0.0.1:800>

  ServerName server1.example.org
  ServerAlias www.server1.example.org
  DocumentRoot /var/www
  CustomLog /var/log/apache2/vh1_access_log combined
  ErrorLog /var/log/apache2/vh1_error_log 
  ServerAdmin webmaster@localhost
  <Directory /var/www/>
     Options Indexes FollowSymLinks MultiViews
     AllowOverride None
     Order allow,deny
     allow from all
  </Directory>

</VirtualHost>

<VirtualHost 10.0.0.1:443>

  ServerName server1.example.org
  ServerAlias www.server1.example.org
  DocumentRoot /var/www
  CustomLog /var/log/apache2/vh1_access_log combined
  ErrorLog /var/log/apache2/vh1_error_log 
  ServerAdmin webmaster@localhost
  <Directory /var/www/>
     Options Indexes FollowSymLinks MultiViews
     AllowOverride None
     Order allow,deny
     allow from all
  </Directory>

</VirtualHost> </source>


Fügen Sie hier folgende Parameter hinzu:

Alternative 1 (bis Apache 2.4.7)

<source lang=apache> SSLEngine on SSLCertificateFile /etc/ssl/certs/meinzertifikat.crt SSLCertificateKeyFile /etc/ssl/certs/meinschluessel.key SSLCACertificateFile /etc/ssl/certs/certificate-chain.crt </source>

Alternative 2

Da seit spätestens der Version 2.4.8 die Option SSLCACertificateFile nicht mehr unterstützt wird, muss man die Konfiguration der Intermediate Zertifikate mit anderen Parametern vornehmen.

Dabei bietet sich die Option an. Die Vorarbeit ist etwas umfangreicher, dafür können eventuelle spätere Zertifikatsinstallationen davon profitieren.

<source lang=apache> SSLEngine on SSLCertificateFile /etc/ssl/certs/meinzertifikat.crt SSLCertificateKeyFile /etc/ssl/certs/meinschluessel.key SSLCACertificatePath /etc/ssl/certs/ </source>

Alternative 3 (seit Apache 2.4)

In der Datei, die für SSLCertificateFile angegeben wird, kann seit Apache 2.4 auch die Kette der Intermediate Zertifikate hinterlegt werden. Dabei muss eine Sortierung von der Spitze bis zur Wurzel eingehalten werden. (vgl. ModSSL Dokumentation)

Dieses Vorgehen kann alternativ oder parallel zur Direktive SSLCACertificatePath gewählt werden.

<source lang=apache> SSLEngine on SSLCertificateFile /etc/ssl/certs/meinzertifikat-mit-kette.crt SSLCertificateKeyFile /etc/ssl/certs/meinschluessel.key </source>

Abschluss

Speichern Sie die Konfiguration und starten Sie den Webserver neu. Das kann auf Debian Linux basierten Systemen wie folgt geschehen:

service apache2 restart

oder

/etc/init.d/apache2 restart

Unter *BSD auch mit service apache22 start oder /usr/local/etc/rc.d/apache22 start.