So richten Sie SSL/TLS mit Apache HTTPD auf Red Hat ein

So richten Sie SSL/TLS mit Apache HTTPD auf Red Hat ein

Zielsetzung

Das Ziel ist es, den Apache -Webserver mit SSL/TLS -Unterstützung unter Red Hat Linux mit den mit der Distribution versandten Paketen einzurichten.

Betriebssystem- und Softwareversionen

  • Betriebssystem: Red Hat Enterprise Linux 7.5
  • Software: Apache httpd, mod_ssl

Anforderungen

Privilegierter Zugriff auf den Webserver.

Schwierigkeit

EINFACH

Konventionen

  • # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
  • $ - Angegebene Linux-Befehle, die als regelmäßiger nicht privilegierter Benutzer ausgeführt werden sollen

Einführung

Die Installation eines Webservers ist in modernen Verteilungen ziemlich einfach, da Anwendungsfälle eines Webservers so häufig sind, dass die meisten, wenn nicht alle Verteilungen Pakete in ihren Repositories bereitstellen. Apache HTTPD ist ein zuverlässiger Webserver, der von einem großen Teil des Internets verwendet wird, und es stehen viele Module zur Verfügung, um die Funktionalität zu erweitern.

Die Tech -Nachrichten sind heutzutage mit Sicherheitsverletzungen, Datendiebstahl/Leckage und einem wachsenden Drang zur Verwendung von Verschlüsselung gefüllt
wo es möglich ist. Während die Verwendung von HTTPS einen bestimmten Computeraufwand sowohl auf der Server als auch auf der Client -Seite hat, bedeutet dies, dass alle Daten, die in beide Richtungen gesendet wurden.

Nehmen wir an, Sie haben einen Webdienst, bei dem sich Clients mit ihrem Benutzernamen und Kennwort - einer gemeinsamen Authentifizierungsmethode - anmelden können, um ihre eigenen Daten zu erreichen, einschließlich der Administratoren der Website. Wenn Sie diesen Service über HTTP anbieten, können alle diese Informationen aufgezeichnet werden.

Die Fähigkeit, die Verschlüsselung beim Browsen zu verwenden, ist seit langem für alle großen modernen Browser eingebaut.



Installieren Sie Apache Webserver mit SSL/TLS -Support

Um die erforderlichen Pakete zu installieren, laufen Sie einfach als Root aus:

# yum install httpd mod_ssl -y

Wenn der Server bereits HTTPD installiert hat, müssen Sie nur installieren mod_ssl, Die gesamte erforderliche Konfiguration erfolgt
vom Installateur. Beachten Sie jedoch, dass Sie in diesem Fall HTTPD neu starten müssen, damit das SSL -Modul geladen werden kann. Durch die Nutzung
Die mit der Distribution ausgelieferten Pakete können unser Leben erheblich erleichtern, da Red Hat ordnungsgemäß getestete Aktualisierungen sowohl für das Betriebssystem als auch für den Webserver bereitstellt. Natürlich benötigen Sie ein Abonnement, um die Updates zu erhalten - aber Updates sind für die benötigt Betriebssystem sowieso, um auf dem neuesten Stand zu bleiben.

Aktivieren und starten Sie den HTTPD -Server

Mit Systemd können Sie den Webserver mit dem folgenden Befehl aktivieren und starten:

# SystemCTL Aktivieren Sie HTTPD && Systemctl Start Httpd

Auf diese Weise wird der HTTPD -Dienst automatisch von Systemd auf jedem Start gestartet.

Überprüfen Sie die Installation und den Status

Sie können den Status des Webservers mit Systemd überprüfen:

# Systemctl Status httpd -l ● httpd.Service - Der Apache HTTP -Server geladen: geladen (/usr/lib/systemd/system/httpd.Service; ermöglicht; Anbieter Voreinstellung: Behindert) aktiv: aktiv (laufend) seit SAT 2018-07-07 21:35:33 CEST; 1 Wochen vor 4 Tagen Dokumente: MAN: HTTPD (8) MAN: APACHECTL (8) Hauptpid: 1292 (httpd) Status: "Gesamtanfragen: 0; Aktuelle Anfragen/Sek. : 9 cgroup: /system.Slice/Httpd.Service ├─ 1292/usr/sbin/httpd -Dforder /sbin/httpd -dforder Jul 07 21:35:32 Web.Foobar.COM SYSTEMD [1]: Starten Sie den Apache HTTP -Server… . Jul 07 21:35:33 Web.Foobar.COM SYSTEMD [1]: Start den Apache HTTP -Server. 
Kopieren

Um zu überprüfen, ob Mod_SSL ordnungsgemäß installiert ist:

# RPM -q mod_ssl mod_ssl -2.4.6-80.EL7.x86_64 
Kopieren

Und wird als Modul in den HTTPD -Server geladen:

# apachectl -m | Grep SSL SSL_MODULE (geteilt) 
Kopieren

Zertifikatnutzung

Wenn wir das Paket mod_SSL installieren, fügt sich das Modul zum HTTPD -Server hinzu, sodass es beim nächsten Start geladen wird.
Ein selbstsigniertes Zertifikat wird standardmäßig generiert, mit der verschlüsselte Verbindung mit dem Browser hergestellt wird.
Öffnen Sie einen Browser und richten Sie ihn über HTTPS auf den Server hin:

SSL -Fehlermeldung im Firefox -Browser

Ignorieren wir dies vorerst, fügen Sie die Sicherheitsausnahme hinzu (legen Sie diese Ausnahme nicht dauerhaft ein) und fahren Sie fort. Die Standardseite wird angezeigt. Im Falle von Red Hat sieht dies wie folgt aus:

Standard -Startseite einer HTTPD -Webserver -Installation unter Red Hat Linux

Beachten Sie den Ausrufezeichen neben der URL (andere Browser können unterschiedliche Warnung zeigen).

Unser Webserver ist jetzt im Betrieb über HTTPS mit einem selbstsignierten Zertifikat und bereit, den veröffentlichten Inhalt bereitzustellen
unter /var/www/html, Der Standard -Inhalts -Root des Webservers auf Red Hat.

Die Verbindung zwischen dem Webserver und dem Browser ist jetzt verschlüsselt, sodass es schwieriger ist, den Verkehr zu fälschen (welches
Kann verwendet werden, beispielsweise stehlen Anmeldeinformationen). Sind wir fertig? In gewisser Weise haben wir unser Ziel abgeschlossen.

Die Tatsache, dass unser Browser das Serverzertifikat nicht als gültig identifizieren kann. Dies kann für ein kleines (Heim-) System geeignet sein, bei dem Sie nur wenige Benutzer sowie nur wenige Webserver haben. Browser in der Welt sollte niemals die von diesen Servern bereitgestellten Inhalte sehen.

Beachten Sie jedoch, dass dieses selbstsignierte Zertifikat rechtzeitig abläuft (wie es jedes andere Zertifikat sollte), und Sie haben haben
um es zu erneuern, um es zu verwenden. Abgelaufene Zertifikate werden von den Browsern als ungültig angesehen, genauso wie Zertifikate, die sich nicht als gültig nach einer gültigen Zertifikatkette nachweisen können.

Um herauszufinden, wann das selbstsignierte (oder ein anderes) Zertifikat abläuft, müssen wir es im Dateisystem finden, indem wir die Konfigurationsdatei des SSL-Moduls konsultieren:

# grep sslcertificateFile/etc/httpd/conf.D/SSL.conf | grep -v "#" sslcertificateFile/etc/pki/tls/certs/localhost.crt 
Kopieren

Und dann OpenSSL verwenden, um das Ablaufdatum zu erhalten:

# OpenSSL X509 -enddate -noout -in/etc/pki/tls/certs/localhost.CRT Notafter = 10. Juli 07:06:17 2019 GMT 
Kopieren

Nach (oder besser gesagt) müssen Sie das Zertifikat ablehnen. A
Im Gegensatz zu selbstsignierten Zertifikaten ist ein eleganterer Ansatz, der ein Zertifikat von einer CA anfordert und verwendet
(Zertifikatbehörde) Ihre Kunden vertrauen bereits aus Ihrer internen CA (was wiederum weltweit eine weltweit haben kann
vertrauenswürdige Wurzel ca darüber) oder direkt von einer global vertrauenswürdigen CA CA.

Um das erhaltene Zertifikat anstelle des Standards zu verwenden, müssen die folgenden Parameter auf die Zertifikatdatei verweisen, die
Zertifikatschlüssel und das Zertifikat der CA, das das SSL -Zertifikat unterschrieben hat. Die Dateien müssen kopiert werden
Der Webserver und muss durch den Benutzer des Betriebssystems lesbar sein, der den Webserver ausführt - im Falle einer Red Hat -Standardinstallation des Apache -Benutzers. Diese Parameter finden Sie in den oben genannten SSL.Conf.

SSLCertificateFile/etc/httpd/benutzerdefiniertes Cert/Server-SSL.crt sslCertificateKeyFile/etc/httpd/benutzerdefinierte cert/server-ssl.Key SSLCACertificateFile/etc/httpd/benutzerdefinierte Zertifikat/ca.crt 


Umleitung des HTTP -Verkehrs auf HTTPS

Nachdem wir über HTTPS dienen, können wir die Verwendung von HTTPS durchsetzen, während wir alle oder einen Teil unserer Inhalte bedienen. In unserer
Beispiel, wir sind sehr sicher und verwenden HTTP nur, um eingehende Clients auf HTTPS umzuleiten.

Eine Frage kann auftreten, wenn wir nur HTTPS sprechen wollen, warum hören wir uns HTTP überhaupt an? Nehmen wir an, ein Endbenutzer, der gerade von unserer Website gehört und eine URL von einem Freund bekam, der das Protokoll nicht enthält. Bis zum heutigen Tag sind die meisten Browser standardmäßig ein HTTP -Protokoll, wenn man nicht explizit angegeben ist. Wenn wir aufhören, über HTTP zu dienen, erhält der Benutzer die URL ohne HTTPS eine Fehlermeldung, wenn sein Browser versucht, unseren Server über HTTP zu erreichen.

Um alle eingehenden HTTP -Anforderungen an HTTPS umzuleiten, erstellen wir eine Datei unter /etc/httpd/conf.D mit einem beschreibenden Namen, sagen wir, redirect_http.Conf mit dem folgenden Inhalt (wo web.Foobar.com ist der DNS -Name der Website):

 Servername Web.Foobar.com Redirect permanent/https: // web.Foobar.com/  

Und starten Sie den Webserver neu. Wir können testen, ob die Umleitung korrekt aus der Befehlszeile mit WGet funktioniert (von einem Host, der dem SSL -Zertifikat des Webservers vertraut):

$ wget http: // web.Foobar.com/--2018-07-19 16: 13: 01-- http: // web.Foobar.com/ auflösendes Web.Foobar.com (Web.Foobar.com)… . 10.9.8.7 Verbindung zu Web herstellen.Foobar.com (Web.Foobar.com) | 10.9.8.7 |: 80… . in Verbindung gebracht. HTTP -Anfrage gesendet, erwartet auf die Antwort… . 301 dauerhaft bewegt: https: // web.Foobar.com/[folgt] --2018-07-19 16: 13: 01-- https: // web.Foobar.com/ Verbindung zu Web herstellen.Foobar.com (Web.Foobar.com) | 10.9.8.7 |: 443… . in Verbindung gebracht. HTTP -Anfrage gesendet, erwartet auf die Antwort… . 200 OK Länge: 240 [Text/HTML] Speichern auf: 'Index.html' 100%[============================================= =====================================>] 240 --.-K/s in 0s 2018-07-19 16:13:01 (7.04 mb/s) - 'Index.HTML 'gespeichert [240/240] 
Kopieren

Die Ausgabe zeigt die Antwort von HTTP 301 und wir können sehen. Standardmäßig wird der SSL -Verkehr in verschiedenen Protokolldateien angemeldet, dann der HTTP -Verkehr. Wir können das oben genannte finden
Anfrage angemeldet /var/log/httpd/ssl_access_log:

10.9.8.8 - - [19/Jul/2018: 16: 13: 01 +0200] "Get/http/1.1 "200 240

Abschluss

Damit haben wir unser Ziel abgeschlossen, ein Webserver eingerichtet.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Linux -Download
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
  • Beste Linux -Distribution für Entwickler
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • GNU/Linux Allgemeiner Fehlerbehebungsleitfaden für Anfänger
  • MX Linux gegen Ubuntu