Wie installiere ich ein SSL-Zertifikat eines Drittanbieters auf Apache?
Hinweis: Contabo empfiehlt die Verwendung eines kostenlosen Let's-Encrypt-Zertifikats mit Certbot, das sowohl die Installation als auch die Erneuerung auf Apache automatisiert. Siehe: Wie installiere ich ein SSL-Zertifikat auf meinem Linux-Server mit Let's Encrypt? Die folgenden manuellen Schritte gelten, wenn du ein Zertifikat von einer externen Zertifizierungsstelle installierst. Bitte beachte, dass Zertifikate jetzt eine maximale Gültigkeitsdauer von 200 Tagen haben und entsprechend erneuert werden müssen.
Wie installiere ich SSL auf Apache?
- Zunächst musst du Apache installieren, falls es noch nicht auf deinem Server installiert ist. Du kannst Apache mit den folgenden Befehlen installieren:
- Aktualisiere deine Paketliste mit diesem Befehl:
sudo apt update - Installiere Apache mit diesem Befehl:
sudo apt install apache2 - Überprüfe, ob Apache läuft, mit diesen Befehlen:
sudo systemctl start apache sudo systemctl enable apache sudo systemctl status apache2
- Aktualisiere deine Paketliste mit diesem Befehl:
- Installiere als Nächstes das SSL-Modul für Apache mit diesen Befehlen:
sudo a2enmod ssl sudo systemctl restart apache2 - Jetzt musst du die SSL-Zertifikate konfigurieren.
- Erstelle zunächst ein Verzeichnis zum Speichern deiner SSL-Zertifikate:
sudo mkdir -p /etc/apache2/ssl - Als Nächstes musst du deine Zertifikate in das soeben erstellte Verzeichnis kopieren.
Wenn sich deine Zertifikate auf deinem lokalen Rechner befinden und du Windows verwendest, kannst du WinSCP nutzen, um die Zertifikatsdateien in das zuvor erstellte Verzeichnis /etc/apache2/ssl hochzuladen.
Falls du eine Linux-Distribution auf deinem lokalen Rechner verwendest, kannst du scp nutzen, um sie auf den Server zu übertragen.
Ersetze „your_username" und „your_server_ip" im folgenden Beispiel durch deinen tatsächlichen Benutzernamen und die IP-Adresse deines Servers und führe die 3 Befehle einzeln aus:scp /path/to/your/certificate.crt your_username@your_server_ip:/etc/apache2/ssl/scp /path/to/your/certificate.key your_username@your_server_ip:/etc/apache2/ssl/scp /path/to/your/certificate_chain.crt your_username@your_server_ip:/etc/apache2/ssl/ - Setze dann die Berechtigungen für diese Zertifikate:
sudo chmod 600 /etc/apache2/ssl/certificate.key
- Erstelle zunächst ein Verzeichnis zum Speichern deiner SSL-Zertifikate:
- Als Nächstes musst du Apache für die Verwendung von SSL konfigurieren. Dazu musst du die Virtual-Host-Konfiguration für deine Website erstellen oder anpassen, um SSL zu nutzen.
- Erstelle eine neue Konfigurationsdatei für deine SSL-Website oder bearbeite die vorhandene:
sudo nano /etc/apache2/sites-available/your_domain_ssl.confBitte beachte, dass du vi, nano oder einen anderen Texteditor deiner Wahl verwenden kannst.
Ersetze „your_domain_ssl.conf" durch den gewünschten Konfigurationsdateinamen, z. B. „default-ssl.conf", wenn du die Standardkonfiguration bearbeitest. - Füge die folgende Konfiguration in die geöffnete Textdatei ein oder passe sie an:
<VirtualHost *:443> ServerAdmin your_email@example.com ServerName your_domain.com ServerAlias www.your_domain.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/apache2/ssl/certificate.crt SSLCertificateKeyFile /etc/apache2/ssl/certificate.key SSLCertificateChainFile /etc/apache2/ssl/certificate_chain.crt <Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> Stelle sicher, dass „SSLCertificateFile", „SSLCertificateKeyFile" und „SSLCertificateChainFile" auf die richtigen Pfade deiner Zertifikatsdateien verweisen. - Aktiviere die SSL-Website mit folgendem Befehl:
sudo a2ensite your_domain_ssl.conf - (optional) Deaktiviere die Standard-HTTP-Website, falls gewünscht:
sudo a2dissite 000-default.conf - Starte Apache neu, um die Änderungen zu übernehmen:
sudo systemctl reload apache2
- Erstelle eine neue Konfigurationsdatei für deine SSL-Website oder bearbeite die vorhandene:
Optional kannst du HTTP auch mit den folgenden Schritten auf HTTPS umleiten:
Um den gesamten HTTP-Traffic auf HTTPS umzuleiten, kannst du Folgendes zu deiner Nicht-SSL-Virtual-Host-Konfiguration hinzufügen (in der Regel in „000-default.conf"):
<VirtualHost *:80>
ServerAdmin your_email@example.com
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/html
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Aktiviere dann das „rewrite"-Modul und starte Apache neu:
sudo a2enmod rewrite
sudo systemctl restart apache2Deine Website sollte jetzt über HTTPS mit deinen SSL-Zertifikaten erreichbar sein.
Mehr über SSL erfährst du in unserem Blog.
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren