Installierung des Zertifikats auf Apache über SSH

10.06.2016 | Petra Alm

In der heutigen Anleitung erklären wir uns, wie der Webserver auf Ihrem VPS über das Protokoll SSH abzusichern ist. Die Installierung eines SSL-Zertifikats sollte einen von den ersten Schritten darstellen, die Sie auf dem neuen Webserver einleiten. Für unseren Artikel werden wir den Linux-VPS mit Debian verwenden.

Vorbereitung der Installierung

Damit Sie sich nach unserer Anleitung richten und das SSL-Zertifikat erfolgreich installieren können, brauchen Sie einen Linux-VPS. Diesen können Sie sich in weniger als einer Minute auf ZonerCloud verschaffen. Das Operationssystem unseres Modellservers ist Debian 7.0 x 64, die Anleitung können Sie aber auch für ähnliche Distributionen von Debian verwenden, wie zum Beispiel für den Ubuntu-Server.

Wir setzen voraus, dass Sie auf Ihrem Server bereits einen Packen mit Apache und mit OpenSSL installiert haben. Zur Erinnerung – der Packen wird auf Debian mithilfe der folgenden Befehlszeile installiert:

apt-get install openssl

Falls Sie LAMP, also Apache + MySQL + PHP noch nicht vorbereitet haben, installieren Sie diese Server nach der Anleitung LAMP, Linux Apache MySQL PHP. Sobald Apache über VPS läuft, wird Ihnen auf der Adresse des Servers das bekannte It works! angezeigt.

Das SSL-Zertifikat allein erwerben Sie vom SSLmarket; in unserer Anleitung verwenden wir die kostenlose Testversion FreeSSL.

Verbindung zum Server

Verbinden Sie sich mit Ihrem (neu eingerichteten) Server über SSH.  Für die Verbindung von Windows verwenden Sie zum Beispiel das Programm PuTTY; Linux oder OS X können sich direkt von dem Serverterminal anmelden. Die Anmeldeangaben von Root haben Sie bei der Einrichtung des virtuellen Servers erhalten und mehr werden Sie nicht benötigen.

In SSH verbinden Sie sich mit der IP-Adresse Ihres VPS (oder dem Domainnamen) und melden sich mit Ihren Anmeldeangaben an.

Bemerkung: Falls Sie das  PuTTY in Windows verwenden, nutzen Sie die gute Integration der Systembox und das einfache Kopieren. Sie brauchen in PuTTY mit der linken Maustaste nur den Text auszuwählen und dieser wird in die Box des Systems gespeichert. Das Einfügen in das Terminal führen Sie mit der rechten Maustaste durch. In dem Terminal verwenden Sie keine Ctrl+C und Ctrl+V Abkürzungen, denn diese würden den laufenden Prozess unterbrechen.

Erstellung des öffentlichen Schlüssels (CSR)

Nach der erfolgreichen Verbindung mit dem Server müssen Sie den CSR-Request erstellen, den öffentlichen Schlüssel. Es handelt sich um eine Zertifikatsanforderung, die Sie der Zertifizierungsstelle liefern müssen – resp. Sie müssen sie in die Bestellung des Zertifikats einfügen.

Den CSR erstellen wir in OpenSSL. Um uns eine Übersicht über die gespeicherten Zertifikate zu schaffen, legen wir für sie einen Ordner ssl in dem Hauptordner /etc an und in diesem Ordner arbeiten wir auch nachfolgend.

mkdir /etc/ssl/test.de && cd /etc/ssl/test.de

Nun befinden wir uns in dem neu angelegten Ordner. Mit dem folgenden Befehl aktivieren wir OpenSSL und erstellen einen privaten Schlüssel von 2048 Bits.

openssl genrsa -out test.de.key 2048

Der private Schlüssel dient zur Entschlüsselung der mit dem Zertifikat verschlüsselten Kommunikation, und deshalb darf ihn keine unbefugte Person erwerben. Den Zugang ermöglichen wir nur dem Inhaber und als den Inhaber stellen wir den Webserver ein, der mit dem privaten Schlüssel arbeiten wird.

chmod 600 test.de.key

chown www-data test.de.key

Den öffentlichen Schlüssel allein generieren Sie mit der folgenden Befehlszeile:

openssl req -new -key test.de.key -out test.de.csr

Sie werden aufgefordert, etliche Angaben zu dem Schlüssel und zu dem zukünftigen Zertifikat auszufüllen. Die wichtigste Angabe ist Common name – Name von der Domain, auf der das Zertifikat laufen wird, und Country – DE. Ohne diese Angaben wäre die Beantragung des Zertifikats nicht möglich. Falls Sie eine Testversion oder ein DV beantragen, sind diese zwei Angaben ausreichend. Falls Sie jedoch ein Zertifikat mit der Validierung des Antragstellers bestellen, müssen Sie auch die übrigen ausfüllen. Ihre Bedeutung finden Sie in dem Artikel Arbeit mit OpenSSL - CSR und Private key. Das Challenge password in dem letzten Schritt füllen Sie bitte nicht aus.

Zertifikatsanforderung

Den erstellten CSR müssen Sie in Ihre Bestellung kopieren. Öffnen Sie ihn in dem Nano-Editor und kopieren Sie ihn.

root@server:/etc/ssl/test.de# nano test.de.csr

Mit der Abkürzung Ctrl+X kehren Sie in das Terminal zurück und den kopierten Text mit dem CSR fügen Sie in die Bestellung des SSL-Zertifikats ein. Das Zertifikat wird mit Ihrem CSR beantragt. Sobald die Validierung abgeschlossen ist, die im Fall von einem Free- oder DV-Zertifikat nur in der Bestätigung einer Validierungsmail besteht, wird das Zertifikat ausgestellt und Ihnen vom SSLmarket per E-Mail zugesendet.

Installierung des Zertifikats und des Intermediate-Zertifikats

Nach Erhalt des ausgestellten SSL-Zertifikats öffnen Sie die TXT-Datei und kopieren das Zertifikat in Textform in die Box.

root@server:/etc/ssl/test.de# nano test.de.crt

In die neue Datei fügen Sie den Text mit dem Zertifikat ein und speichern Sie (Ctrl+X, Y, Enter).

Den Inhalt von der Datei linux_cert+ca.pem fügen Sie in die neue Datei test.de.crt ein. In dieser Datei wird sowohl das Zertifikat als auch das Intermediate-Zertifikat sein, das Sie auf Ihrem Server für die Vertrauenswürdigkeit Ihres Zertifikats in den Browsern der Besucher brauchen.

Einstellung von Apache und Vollendung

Mit der folgenden Befehlszeile aktivieren Sie das SSL-Modul von Apache - dann kann der Server HTTPS nutzen:

sudo a2enmod ssl 

 Nun ist es notwendig, die Apache-Konfigurationsdatei für die betreffende aktive Domain zu finden und zu editieren. In unserem Fall befindet sie sich unter etc/apache2/sites-enabled. Wir öffnen also die Konfigurationsdatei 000-default.

root@server:/etc/ssl/test.de# nano /etc/apache2/sites-enabled/000-default

Den Inhalt der Datei bildet eine Konfiguration zwischen und . Falls nötig, maximieren Sie das Fenster von dem Terminal und kopieren Sie die ganze Konfiguration. Nachfolgend geben Sie sie unten noch einmal ein, damit sie zweimal aufgeführt wird. Die zweite Konfiguration dient der Konfiguration von HTTPS auf dem Port 43.

In der eben eingefügten Konfiguration ändern Sie  auf   und gleich unten kopieren Sie die folgenden Zeilen mit Direktiven und dem richtigen Weg zu den Zertifikaten:

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

Dadurch wird SSL aktiviert, das ungenügend sichere Protokoll SSLv2 und SSLv3 ausgeschaltet und es werden präferierte Verschlüsselungen eingestellt. Weiter befinden sich in den Direktiven Verweise auf die Dateien mit Schlüsseln:

SSLCertificateFile /etc/ssl/test.de/test.de.crt

SSLCertificateKeyFile /etc/ssl/test.de/test.de.key

SSLCertificateChainFile /etc/ssl/test.de/test.de.crt

Sobald Sie die angepasste Konfiguration speichern, starten Sie Apache neu.

sudo service apache2 reload

Das Zertifikat sollte auf dem Web funktionieren und vertrauenswürdig sein. Dies können Sie durch einen Besuch in dem Browser oder durch einen Checker der SSL-Installierung überprüfen. Sie können unter mehreren Checkern wählen, die Tests finden Sie z.B. auf SSLmarket, auf Qualys SSL Server Test oder auf Online TLS check. Auch auf den Webs der Zertifizierungsstellen stehen Ihnen nutzvolle Tools zur Verfügung.

Was sollte noch eingestellt werden?

Nun haben Sie auf Ihren Webserver ein SSL-Zertifikat installiert und Sie können mit seiner Verwendung beginnen. Wir empfehlen Ihnen, auf dem Server die Sicherheit der Verschlüsselung zu erhöhen. Sie können zum Beispiel auch SSLv3 ausschalten und nur das moderne TLS-Protokoll verwenden, oder Sie können die Einstellung von den präferierten Verschlüsselungen ausfeilen.

Inspirieren lassen können Sie sich in unserem Artikel Erreichen Sie im SSLlabs-Test die Note A+!. In dem Text finden Sie Ratschläge, wie der Server genügend sicher einzustellen ist.

 


Petra Alm
Spezialistin für TLS-Zertifikate
DigiCert TLS/SSL Professional
e-mail: info(at)sslmarket.de