Installieren Sie ein SSL-Zertifikat auf Apache Mod_SSL

Apache mit SSL konfigurieren

In den folgenden Anweisungen wird davon ausgegangen, dass Sie beide einen sicheren Server (am Port) ausführen möchten 443) und einen regulären Server (am Port 80). Zunächst müssen Sie den Server so konfigurieren, dass er beide Ports überwacht. Entweder bearbeiten /etc/apache2/ports.conf (in Debian; dies ist in enthalten apache2.conf) oder bearbeiten /etc/apache2/apache2.conf direkt, um die Zeilen einzuschließen:

Liste 80 Liste 443

Als nächstes bearbeiten /etc/apache2/sites-enabled/yoursite um die SSL-Einstellungen zu verwenden. Die Trennung der regulären und sicheren Servereinstellungen mithilfe von VirtualHosts ist im Hinblick auf die Wartbarkeit die einfachste Option. Jede Konfiguration außerhalb der VirtualHosts-Abschnitte (z. B. das Festlegen des ServerAdmin) gilt für beide (und alle anderen) VirtualHosts.

Hinweis: Ab Apache 2.4.8 ist die Praxis, das Serverzertifikat und die Zwischenzertifikatskette in separaten Dateien zu speichern, veraltet. Sowohl die aktuellen als auch die älteren Methoden werden in den anklickbaren Registerkarten unten beschrieben.
Apache 2.4.8 oder höherApache 2.4.7 oder niedriger

Versionen von Apache 2.4.8 und höher erwarten, dass Ihr Serverzertifikat mit allen Zwischenzertifikaten in einer Datei verknüpft wird. Um eine verkettete Datei von SSL.com herunterzuladen, wählen Sie die Nginx Download-Link in Ihrem Portal-Konto:

Nginx

Alternativ können Sie Ihre vorhandenen Zertifikat- und Zwischendateien mit einem Befehl wie dem folgenden verketten:

$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

Fügen Sie Ihrer Konfigurationsdatei den folgenden Abschnitt hinzu:

# ================================================ # SSL /TLS Einstellungen # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine auf SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Einige Hinweise zu dieser Konfiguration:

  • SSLEngine muss aktiviert sein, damit der Server SSL verwendet.
  • DocumentRoot Legt das Stammverzeichnis für diesen virtuellen Host fest. Dies bedeutet, dass Sie sichere Inhalte vollständig von regulären Inhalten trennen können.
  • SSLCertificateFile sollte auf den Speicherort eingestellt werden, an dem Sie die Datei mit Ihrem Serverzertifikat und Ihrer Zwischenkette ablegen.
  • SSLCertificateKeyFile sollte auf den Speicherort eingestellt werden, an dem Sie Ihre private Schlüsseldatei ablegen.

Fügen Sie Ihrer Konfigurationsdatei den folgenden Abschnitt hinzu:

# ================================================ # SSL /TLS Einstellungen # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine auf SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl / private / ca-bundle client.crt

Einige Hinweise zu dieser Konfiguration:

  • SSLEngine muss aktiviert sein, damit der Server SSL verwendet.
  • DocumentRoot Legt das Stammverzeichnis für diesen virtuellen Host fest. Dies bedeutet, dass Sie sichere Inhalte vollständig von regulären Inhalten trennen können.
  • SSLCertificateFile, SSLCertificateChainFile, und SSLCertificateKeyFile sollte auf die Speicherorte eingestellt werden, an denen Sie Ihre Zertifikat-, Zwischen- und privaten Schlüsseldateien ablegen.

Fügen Sie der Konfigurationsdatei den folgenden Abschnitt hinzu, um den regulären Server auf Port 80 auszuführen:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Hostspezifische Verzeichniseinstellungen, Optionen usw. # Die meisten dieser Optionen werden wahrscheinlich außerhalb der VirtualHosts # -Abschnitte festgelegt.

Starten Sie den Webserver neu, nachdem Sie die bearbeitete Konfigurationsdatei gespeichert haben. Wenn Sie beim Generieren Ihres Zertifikats eine Passphrase verwendet haben, müssen Sie diese eingeben, wenn Sie dazu aufgefordert werden.

Testen

Erstellen Sie eine einfache index.html-Seite, wo immer sich das Stammverzeichnis für Ihren Webserver befindet, sofern Sie dort noch keinen Inhalt haben.

Zeigen Sie dann mit Ihrem Webbrowser auf https://www.yoursite.com. Sie sollten sehen, dass eine SSL-Verbindung geöffnet und die Seite geliefert wird. Wenn Sie ein selbstsigniertes Zertifikat verwenden, zeigt Ihr Browser eine Warnung an, dass die Identität des Servers nicht überprüft werden kann. Sie können das Zertifikat anzeigen und akzeptieren. Wenn Sie ein externes Zertifikat verwenden, sollte dies alles ohne Intervention geschehen.

Stellen Sie außerdem sicher, dass Sie nicht über http: // auf den geschützten Inhalt zugreifen können. Wenn Sie es versuchen, sollten Sie eine Fehlermeldung erhalten.

Problemlösung

Wenn es nicht wie erwartet funktioniert, überprüfen Sie zunächst, ob Ihr Server tatsächlich ausgeführt wird ps -a | grep apache. Wenn dies nichts zurückgibt, starten Sie es neu und suchen Sie auf dem Terminal nach Fehlermeldungen.

Überprüfen Sie außerdem, ob die Berechtigungen für Ihre Schlüssel- und Zertifikatdateien korrekt festgelegt sind (siehe oben) sowie die Berechtigungen für Ihre Test-HTML-Datei und das übergeordnete Verzeichnis.

Überprüfen Sie als Nächstes die Protokolle. Sie sollten sowohl die Hauptserverprotokolle als auch die SSL-Protokolle überprüfen, die Sie oben in Ihrer Konfigurationsdatei eingerichtet haben. Wenn Sie nichts Nützliches erhalten, ändern Sie den LogLevel-Wert in der Apache2-Konfigurationsdatei in "Debug", starten Sie Apache2 neu und testen Sie erneut. Dies sollte mehr Protokolldateidaten ergeben.

Wenn Sie auch auf Port 80 einen normalen Webserver ausführen, rufen Sie eine Testseite über http: // und nicht über https: // ab, um festzustellen, ob das Problem mit dem Webserver oder der SSL-Verbindung besteht. Beachten Sie, dass im obigen Setup das Stammverzeichnis des Webservers für http: // und https: // unterschiedlich ist, sodass Sie nicht auf denselben Inhalt zugreifen können (oder sollten!). Wenn Ihre Testseite im Stammverzeichnis http: // jedoch einwandfrei funktioniert und Ihre Testseite im Stammverzeichnis https: // nicht, kann dies Ihnen helfen, das Problem zu lokalisieren.

Wenn das Problem die SSL-Verbindung ist, ist ein nützliches Tool s_clientDies ist ein Diagnosetool zur Fehlerbehebung TLS/ SSL-Verbindungen. Die grundlegende Verwendung ist: /usr/bin/openssl s_client -connect localhost:443. Es gibt auch zahlreiche andere Optionen, für die Sie die Dokumentation überprüfen können. Wenn Sie Fehlermeldungen erhalten, sollte dies Ihnen bei der Suche nach dem Problem helfen.

Vielen Dank, dass Sie sich für SSL.com entschieden haben! Bei Fragen wenden Sie sich bitte per E-Mail an Support@SSL.com, Anruf 1-877-SSL-SECUREoder klicken Sie einfach auf den Chat-Link unten rechts auf dieser Seite.

Abonnieren Sie den Newsletter von SSL.com

Verpassen Sie keine neuen Artikel und Updates von SSL.com

Bleiben Sie informiert und sicher

SSL.com ist ein weltweit führendes Unternehmen im Bereich Cybersicherheit, PKI und digitale Zertifikate. Melden Sie sich an, um die neuesten Branchennachrichten, Tipps und Produktankündigungen von zu erhalten SSL.com.

Wir würden uns über Ihr Feedback freuen

Nehmen Sie an unserer Umfrage teil und teilen Sie uns Ihre Meinung zu Ihrem letzten Kauf mit.