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
In der eben eingefügten Konfiguration ändern Sie
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.
Spezialistin für TLS-Zertifikate
DigiCert TLS/SSL Professional
e-mail: info(at)sslmarket.de