Wie kann ich SSL/TLS für Apache im LAMP Stack einrichten?
- Einleitung
- Vorbereitungen und Voraussetzungen
- Installation und Aktivierung der SSL-Module
- Erstellen oder Beschaffen eines SSL-Zertifikats
- Apache-Konfiguration für SSL
- Aktivieren der SSL-Site und Neustart von Apache
- Überprüfung der SSL-Konfiguration
- Zusammenfassung
Einleitung
Die Absicherung einer Webseite mittels SSL/TLS ist heutzutage unerlässlich, um Daten verschlüsselt zu übertragen und das Vertrauen der Nutzer zu gewährleisten. Im LAMP-Stack, also Linux, Apache, MySQL und PHP, wird dies hauptsächlich durch die Konfiguration des Apache-Webservers realisiert. Im Folgenden wird beschrieben, wie Sie SSL/TLS für Apache einrichten können.
Vorbereitungen und Voraussetzungen
Zunächst benötigen Sie ein gültiges SSL-Zertifikat. Dieses können Sie entweder von einer Zertifizierungsstelle (CA) wie Let’s Encrypt, DigiCert oder GlobalSign beziehen oder selbst mit OpenSSL ein selbstsigniertes Zertifikat erstellen – letzteres ist nur für Testzwecke geeignet, da Browser selbstsignierte Zertifikate als unsicher einstufen.
Um Let’s Encrypt zu nutzen, empfiehlt es sich, das Tool certbot zu installieren, welches den Prozess der Zertifikatserstellung und -erneuerung automatisiert. Die Installation erfolgt typischerweise über den Paketmanager der verwendeten Linux-Distribution, zum Beispiel mit apt für Debian/Ubuntu oder yum für CentOS.
Installation und Aktivierung der SSL-Module
Das Apache-Modul mod_ssl ist notwendig, um SSL zu unterstützen. Sie können es mit einem Paketmanager installieren, falls es noch nicht vorhanden ist. Unter Debian-basierten Systemen heißt das Paket oft apache2 mit mod_ssl, oder Sie aktivieren es mit dem Befehl a2enmod ssl. Anschließend sollten Sie Apache neu starten oder neu laden, um die Änderungen zu übernehmen.
Erstellen oder Beschaffen eines SSL-Zertifikats
Für ein selbstsigniertes Zertifikat können Sie folgenden OpenSSL-Befehl verwenden, um ein Zertifikat und einen Schlüssel zu generieren:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
Dabei werden Sie zur Eingabe einiger Informationen, wie Ländername, Organisation und Common Name (z.B. Ihre Domain), aufgefordert.
Wenn Sie Let’s Encrypt nutzen, reicht in der Regel der Befehl certbot --apache -d ihre-domain.tld aus, um ein gültiges Zertifikat zu erhalten und zu aktivieren.
Apache-Konfiguration für SSL
Um SSL in Apache zu aktivieren, müssen Sie eine neue virtuelle Host-Konfiguration für Port 443 (HTTPS) anlegen. Typischerweise befindet sich die Konfigurationsdatei in /etc/apache2/sites-available oder einem ähnlichen Verzeichnis, je nach Distribution.
Ein Beispiel für eine SSL-Konfigurationsdatei sieht so aus:
<VirtualHost *:443> ServerName ihre-domain.tld DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key # Optional: Falls Sie ein Zwischenzertifikat haben SSLCertificateChainFile /etc/ssl/certs/intermediate.crt # Weitere Einstellungen zur Sicherheit SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:!aNULL:!MD5Wichtig ist, dass Sie die Pfade zu Ihrem Zertifikat und Schlüssel richtig angeben. Sollten Sie Let’s Encrypt verwenden, liegen diese meistens unter /etc/letsencrypt/live/ihr-domain/.
Zusätzlich sollte Ihre HTTP-Konfiguration (Port 80) so angepasst werden, dass alle Verbindungen auf HTTPS umgeleitet werden, um eine durchgehende Verschlüsselung sicherzustellen.
Aktivieren der SSL-Site und Neustart von Apache
Nach dem Erstellen oder Anpassen der Konfiguration muss die SSL-Site aktiviert werden, beispielsweise mit a2ensite default-ssl oder dem Namen der eigenen Konfigurationsdatei. Anschließend ist ein Neustart von Apache notwendig, damit die Änderungen wirksam werden. Dies können Sie meist mit systemctl restart apache2 oder service apache2 restart erreichen.
Überprüfung der SSL-Konfiguration
Nachdem Apache neu gestartet wurde, können Sie im Browser die HTTPS-Adresse Ihrer Webseite aufrufen. Achten Sie auf das Schloss-Symbol in der Adresszeile, das eine sichere Verbindung signalisiert. Außerdem können Sie Tools wie SSL Labs verwenden, um die Qualität der SSL-Implementierung zu überprüfen und Verbesserungspotenziale festzustellen.
Zusammenfassung
Die Einrichtung von SSL/TLS für Apache im LAMP-Stack umfasst die Beschaffung eines Zertifikats, die Aktivierung von SSL-Modulen im Apache, die Konfiguration der virtuellen Hosts für HTTPS, das Aktivieren der SSL-Site und den Neustart des Webservers. Mit automatisierten Tools wie Certbot wird der Prozess wesentlich vereinfacht, sodass Sie Ihre Webseite einfach und sicher verschlüsseln können.
