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?

  1. Zunächst musst du Apache installieren, falls es noch nicht auf deinem Server installiert ist. Du kannst Apache mit den folgenden Befehlen installieren:
    1. Aktualisiere deine Paketliste mit diesem Befehl:
      sudo apt update
    2. Installiere Apache mit diesem Befehl:
      sudo apt install apache2
    3. Überprüfe, ob Apache läuft, mit diesen Befehlen:
      sudo systemctl start apache
      sudo systemctl enable apache
      sudo systemctl status apache2
  2. Installiere als Nächstes das SSL-Modul für Apache mit diesen Befehlen:
    sudo a2enmod ssl
    sudo systemctl restart apache2
  3. Jetzt musst du die SSL-Zertifikate konfigurieren.
    1. Erstelle zunächst ein Verzeichnis zum Speichern deiner SSL-Zertifikate:
      sudo mkdir -p /etc/apache2/ssl
    2. 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/
    3. Setze dann die Berechtigungen für diese Zertifikate:
      sudo chmod 600 /etc/apache2/ssl/certificate.key
  4. 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.
    1. Erstelle eine neue Konfigurationsdatei für deine SSL-Website oder bearbeite die vorhandene:
      sudo nano /etc/apache2/sites-available/your_domain_ssl.conf
      Bitte 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.
    2. 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.
    3. Aktiviere die SSL-Website mit folgendem Befehl:
      sudo a2ensite your_domain_ssl.conf
    4. (optional) Deaktiviere die Standard-HTTP-Website, falls gewünscht:
      sudo a2dissite 000-default.conf
    5. Starte Apache neu, um die Änderungen zu übernehmen:
      sudo systemctl reload apache2

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 apache2

Deine 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

Wie können wir diesen Artikel verbessern?

Wählen Sie wenigstens einen der Gründe aus
CAPTCHA-Verifikation ist erforderlich.

Feedback gesendet

Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren

Sie konnten nicht finden, was Sie suchen?