Lassen Sie uns Apache mit einem SSL / TLS-Zertifikat sichern.
Sobald das Zertifikat implementiert ist, kann über HTTPS auf die konfigurierte Domäne / IP zugegriffen werden.
Fangen wir an.
Auf hoher Ebene werden wir Folgendes tun.
- Kompilieren Sie Apache HTTP 2.4.5 mit dem SSL-Modul
- Erhalten Sie ein SSL Zertifikat
- Konfigurieren Sie Apache für die Unterstützung von SSL
Install Apache with SSL from Source
Um SSL zu konfigurieren, muss Apache HTTP mit mod_ssl kompiliert werden. Ich werde CentOS 7 VM von verwenden Digitale Ozean um dies zu demonstrieren.
- Melden Sie sich mit root beim Linux-Server an und laden Sie die neueste Version von Apache herunter
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .
Hinweis: Sie können überprüfen Sie hier für die neueste Version.
- Mit dem Befehl gunzip extrahieren
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
- Sie haben einen neuen Ordner “httpd-2.4.25"
- Gehen Sie hinein und führen Sie den folgenden Konfigurationsbefehl aus
./configure --enable-ssl –-enable-so
Hinweis: Wenn Sie dies auf einem brandneuen Server tun, können Probleme im Zusammenhang mit APR, PCRE, OpenSSL auftreten Anleitung zur Fehlerbehebung.
Stellen Sie sicher, dass Sie mit dem obigen Befehl configure keinen Fehler erhalten, und als nächstes müssen Sie mit make-Befehlen installieren.
make
make install
Stellen Sie wie gewohnt sicher, dass die obigen Befehle keine Fehler enthalten. Dies kommt zu dem Schluss, dass Sie haben installiert ein Apache-Webserver mit SSL-Unterstützung.
Getting an SSL Certificate
Es gibt mehrere Möglichkeiten, das SSL-Zertifikat zu generieren und von der Zertifizierungsstelle signieren zu lassen.
Wenn Sie SSL auf dem Intranet-Webserver implementieren möchten, verfügt der größte Teil des Unternehmens über ein internes Zertifikataussteller-Team, sodass Sie sich bei diesen erkundigen müssen. Sie müssen jedoch noch eine CSR (Certificate Signing Request) generieren, und Sie können dies mithilfe von tun OpenSSL.
Wenn Sie jedoch eine sichern möchten Internet-URL Dann können Sie entweder ein Zertifikat von VeriSign kaufen. Los Papa, Namecheap, ZeroSSLusw. oder erhalten Sie ein KOSTENLOSES Zertifikat von Lass uns verschlüsseln.
Let's Encrypt ist ein Linux Foundation Collaboration Project, das a KOSTENLOSES SSL / TLS-Zertifikat. Ich werde Let's Encrypt verwenden, um ein Zertifikat für meine Domain zu erhalten - Chandan.io
Es gibt mehrere Möglichkeiten, CSR zu generieren, aber die einfachste Eine, die ich gefunden habe, ist die Verwendung der “SSL KOSTENLOSOnline-Tool.
Geben Sie die URL ein, die Sie sichern möchten
Überprüfen Sie den Domänenbesitz mit einer der aufgeführten Methoden und laden Sie Ihre Domänenzertifikatsdateien herunter.
Sie erhalten drei Dateien, die wir als Nächstes zum Konfigurieren des Apache-Webservers verwenden.
- Schlüssel - Dies ist Ihre Schlüsseldatei und sollte nicht öffentlich an Dritte weitergegeben werden
- Zertifikat - aktuelles SSL-Zertifikat für Ihre Domain
- Ca_bundle - Unterzeichner-Stamm- / Zwischenzertifikat
Übertragen Sie die heruntergeladene Datei auf den Webserver. Wir werden sie in Kürze brauchen.
Apache SSL Configuration
Ein letzter Schritt wäre, Apache so zu konfigurieren, dass es die Anforderung über HTTPS bedienen kann.
- Melden Sie sich beim Apache-Webserver an
- Erstellen Sie eine Sicherungskopie der Datei httpd.conf (Standardspeicherort / usr / local / apache2 / conf /).
- Öffnen Sie die Datei mit dem vi-Editor und stellen Sie sicher, dass das Modul mod_ssl & httpd-ssl.conf vorhanden und nicht kommentiert ist
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
Wir werden verwenden httpd-ssl.conf Datei zum Konfigurieren der Zertifikatdetails. Folgendes müssen Sie sicherstellen, dass die richtigen Parameter vorhanden sind.
- SSLCertificateFile – Zertifikat CRT Dateipfad, den Sie zuvor heruntergeladen haben
- SSLCertificateKeyFile - private.a Schlüsseldateipfad
- SSLCertificateChainFile - Dateipfad ca_bundle.crt
Tipp: Möglicherweise möchten Sie einen neuen Ordner mit dem Namen "ssl" erstellen und alle zertifikatsbezogenen Dateien in diesem Ordner behalten.
- Erstellen Sie bei Bedarf eine Sicherungskopie und ändern Sie die Datei mit dem vi-Editor.
SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt"
SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"
Als nächstes müssen Sie die “ServerRichtlinie. Normalerweise ist es Ihr Domain- / URL-Name
ServerName chandan.io
- Speichern Sie die Datei und starten Sie den Apache Webserver neu
cd /usr/local/apache2/bin
./apachectl stop
./apachectl start
Und schließlich müssen Sie sicherstellen, dass Ihre Domain der neu konfigurierten Webserver-IP zugeordnet ist. Versuchen Sie anschließend, mit HTTPS auf Ihre Domain zuzugreifen.
Und wie Sie sehen können, ist Chandan.io Zugriff über https mit dem Zertifikat, das ich konfiguriert habe.
Die obigen Schritte sind für die Einrichtung eines SSL-Zertifikats unerlässlich, und Sie müssen das SSL weiter anpassen härten und sichern, was ich hier erklärt habe. Bevor Sie live gehen, möchten Sie vielleicht auch Testen Sie Ihren Webserver SSL / TLS um sicherzustellen, dass es keinen allgemeinen Sicherheitslücken ausgesetzt ist.
Ich hoffe, dies gibt Ihnen eine Vorstellung davon, wie Sie ein SSL-Zertifikat auf Ihrem Apache-Webserver implementieren, damit auf die URL über HTTPS zugegriffen werden kann.