SSL-Zertifikat installieren?

Die Voraussetzung für den Erwerb von SSL-Zertifikaten ist die Erstellung eines CSR [Certificate Signing Request], einer Zertifikatsregistrierungsanforderung. Dieses enthält einen öffentlichen Schlüssel sowie den Domainnamen und die persönlichen Angaben des Antragstellers [Name, Firma,...]. Mit dem CSR erhält man bei der Zertifizierungsstelle ein gültiges, installationsfähiges Zertifikat.

Die Installation erfolgt entsprechend des mitgelieferten READMEs der Zertifizierungsstelle und durch Installation des entsprechenden Ports aus den verschiedenen Distributionen oder durch Wandlung des Quellcodes in die Zielsprache. Hier ein Beispiel, wie man auf UNIX-System ein SSL-Zertifikat installiert:

>./configure
>make
>make install

Hierzu loggt man sich zuerst auf dem Webserver (z.B. Apache) ein. Mit einem frei wählbaren Editor wird nun die Konfigurationsdatei mit dem zu schützenden VirtualHost im Verzeichnis
 
>/etc/apache/sites-enabled/

[für die Version des Apache 2,0 lautet diese Zeile:
>/etc/apache2/sites-enabled/]

geöffnet.

Nach dem Heraussuchen des mit SSL abzusichernden VirtualHost-Konfigurationsabschnittes wird diesem folgende Konfiguration hinzugefügt:

<VirtualHost 192.168.0.1:443>        
        ServerName example.com         DocumentRoot /var/www/      
<IfModule mod_ssl.c>        
        SSLEngine on             
        SSLZertifikate /etc/ssl.key/example.com.key    SSLCertificateFile /etc/ssl.crt/example.com.crt    
        SetEnvIf User-Agent ".*MSIE.*" \      
           nokeepalive ssl-unclean-shutdown \       
           downgrade-1.0 force-response-1.0     </IfModule>    
</VirtualHost>

Dabei kann sich die erste Zeile durch eine andere IP-Adresse unterscheiden.

Nach Überprüfung der Eingabe wird diese im Editor gespeichert und der Editor geschlossen.

Die angepasste Konfiguration sollte sich nun mit apachectl testen lassen:

>apachectl configtest<
[für die Version Apache2,0 lautet diese Zeile: >apache2ctl configtest<]

Ist die Installation gelungen [Bestätigung erfolgt durch die OK-Anzeige], kann der Webserver mit der Eingabe

>apachectl restart<
[für die Version Apache2,0 lautet diese Zeile: >apache2ctl restart<]

neu gestartet werden.

Nun kann die Konfiguration des Webservers mit den Konfigurationsfiles:

httpd.conf

erfolgen.

Die Datei ist unter

>/usr/local/apache/conf<
[für die Version Apache2,0 lautet diese Zeile:
>/usr/local/apache2/conf<]

gespeichert.

Die im Eintrag >ServerAdmin< angegebene Mailadresse wird durch die im Zertifikatsantrag angegebene administrative Emailadresse ersetzt.

>ServerAdmin ...@...de<

Der >full-qualified-domain-name< im Eintrag >ServerName< wird durch den im DN-Attribut des Zertifikatsantrags angegebenen Rechnernamen ersetzt.

ServerName test. ... .de:Portnummer

Als Portnummer wird die Zahl eingegeben, auf welcher der Apache-Server auf eingehende Verbindungen lauschen soll.

Mit Aufruf des Servers über >http< sollte die Apache-Startseite erscheinen.

Unter:
>/usr/local/apache/bin/apachectl<
[für Version Apache 2,0 lautet die Zeile:
>/usr/local/apache2/bin/apache2ctl<]

und mit den Parametern

>stop<, >start< und >restart<

kann der Webserver gestoppt und gestartet werden.

In der Konfigurationsdatei

>ssl.conf<

können Einstellungen für die https-Verbindungen verändert werden. Die Einstellungen sind ähnlich denen der >httpd.conf< vorzunehmen. Dabei sollte
hier jedoch der Server auf dem Standard-Port 443 für verschlüsselte Verbindungen lauschen.

ServerName test. ... .de:443

Die Pfadangabe unter dem Eintrag

>SSLCertificateFile<

wird hierbei durch den vollständigen Pfad aus dem von der CA ausgestellten Webserver-Zertifikat ersetzt.

>SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt<

[für die Version Apache2,0 lautet diese Zeile:
>SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt<]

In der Standardeinstellung der Apache-SSL-Konfiguration kann die Zeile >SSLCipherSuite< mit dem Befehl:

SSLCipherSuite !ADH!ANULL:!ENULL:!NULL:!IDEA:!DES:!RC2:!SSLv2:!EXP:RC4+RSA:TLSv1:SSLv3

ersetzt werden, um unsichere Authentifikations- und Verschlüsselungsmechanismen auszuschließen.

Den Abschluss des Vorganges bildet ein Browsertest.

Starten Sie dazu den Server mit
>/usr/local/apache/bin/apachectl startssl<
[in der Version Apache2,0 lautet diese Zeile:
>/usr/local/apache2/bin/apachectl startssl<],

um das SSL/TSL-Protokoll zu aktivieren. Hieraus kann im Falle eines missglückten Starts die Ursache ermittelt werden.

Sollte die Identität des Webservers als nicht vertrauenswürdig eingestuft sein, kann die Ursache darin liegen, dass Angaben aus dem Zertifikat nicht ordnungsgemäß in die vorgesehenen Felder übertragen wurden. Über die o. g. Befehle kann dies nachgeholt werden.