RHCE -Serien implementieren HTTPS über TLS mithilfe von Network Security Service (NSS) für Apache - Teil 8

RHCE -Serien implementieren HTTPS über TLS mithilfe von Network Security Service (NSS) für Apache - Teil 8

Wenn Sie ein Systemadministrator sind, der für die Wartung und Sicherung eines Webservers verantwortlich ist, können Sie es sich nicht leisten, Ihre besten Anstrengungen zu widmen, um sicherzustellen, dass Daten, die von Ihrem Server bedient oder durchlaufen werden, jederzeit geschützt sind.

RHCE -Serie: Implementieren von HTTPS über TLS mithilfe von Network Security Service (NSS) für Apache - Teil 8

Um sicherere Mitteilungen zwischen Web -Clients und Servern zu bieten, die Https Protokoll wurde als Kombination von geboren Http Und SSL (Sichern Sie die Steckdosen) oder in jüngerer Zeit, Tls (Transportschichtsicherheit).

Aufgrund einiger schwerwiegender Sicherheitsverletzungen, SSL wurde zugunsten der robuster Tls. Aus diesem Grund erklären wir in diesem Artikel, wie Sie Verbindungen zwischen Ihrem Webserver und den Clients mit TLS sichern können.

In diesem Tutorial geht davon aus, dass Sie Ihren Apache -Webserver bereits installiert und konfiguriert haben. Wenn nicht, lesen Sie bitte den folgenden Artikel auf dieser Website, bevor Sie weiter fortfahren.

  1. Installieren Sie Lampe (Linux, MySQL/Mariadb, Apache und PHP) auf RHEL/Centos 7

Installation von OpenSSL und Versorgungsunternehmen

Stellen Sie zunächst sicher, dass dies sicherstellen Apache läuft und das beide http Und https sind durch die Firewall erlaubt:

# Systemctl Start HTTP # SystemCTL Aktivieren Sie http # Firewall-cmd --permanent --add-service = http # Firewall-cmd --permanent --add-service = https 

Installieren Sie dann die erforderlichen Pakete:

# yum update && yum install OpenSSL mod_nss crypto-utils 

Wichtig: Bitte beachten Sie, dass Sie ersetzen können mod_nss mit mod_ssl Im obigen Befehl, wenn Sie verwenden möchten OpenSSL Bibliotheken statt von NSS (Netzwerksicherheitsdienst) implementieren Tls (Welche man zu verwenden ist, bleibt ganz bei Ihnen, aber wir werden NSS in diesem Artikel verwenden, da es robuster ist. Zum Beispiel unterstützt es jüngste Kryptographie -Standards wie z PKCS #11).

Endlich deinstallieren mod_ssl Wenn Sie sich für die Verwendung entschieden haben mod_nss, oder umgekehrt.

# yum entfernen mod_ssl 

Konfigurieren von NSS (Netzwerksicherheitsdienst)

Nach mod_nss wird installiert, seine Standardkonfigurationsdatei wird als erstellt als /etc/httpd/conf.D/NSS.Conf. Sie sollten dann sicherstellen, dass alle alle Hören Und Virtualhost Richtlinien verweisen auf Port 443 (Standardport für HTTPS):

NSS.Conf - Konfigurationsdatei
Hören Sie 443 VirtualHost _default_: 443 

Dann neu starten Apache und prüfen Sie, ob die mod_nss Das Modul wurde geladen:

# apachektl neu starten # httpd -m | Grep NSS 
Überprüfen Sie das in Apache geladene Modul -Modul des Mod_NSS

Als nächstes sollten die folgenden Änderungen vorgenommen werden in /etc/httpd/conf.D/NSS.Conf Konfigurationsdatei:

1. Geben Sie das NSS -Datenbankverzeichnis an. Sie können das Standardverzeichnis verwenden oder ein neues erstellen. In diesem Tutorial werden wir den Standard verwenden:

NsScertificatedatabase/etc/httpd/alias 

2. Vermeiden Sie die manuelle Passphrase -Eintrag in jedem System, indem Sie das Kennwort im Datenbankverzeichnis in speichern /etc/httpd/nss-db-password.Conf:

NSSpaSphrasedialog-Datei:/etc/httpd/nss-db-password.Conf 

Wo /etc/httpd/nss-db-password.Conf enthält nur die folgende Zeile und mein Passwort ist das Passwort, das Sie später für die NSS -Datenbank festgelegt haben:

Internal: MyPassword 

Darüber hinaus sollten die Berechtigungen und sein Eigentum auf 0640 Und Root: Apache, bzw:

# Chmod 640/etc/httpd/nss-db-password.conf # chgrp apache/etc/httpd/nss-db-password.Conf 

3. Red Hat empfiehlt die Deaktivierung SSL und alle Versionen von Tls vorherige zu TLSV1.0 aufgrund der Pudel SSLV3 Verwundbarkeit (weitere Informationen hier).

Stellen Sie sicher, dass jede Instanz der NSProtocol Die Richtlinie lautet wie folgt (Sie finden wahrscheinlich nur einen, wenn Sie keine anderen virtuellen Hosts hosten):

NSProtocol TLSV1.0, tlsv1.1 

4. Apache lehnt es ab, neu zu starten, da dies ein selbstsigniertes Zertifikat ist und den Emittenten nicht als gültig anerkennt. Aus diesem Grund müssen Sie in diesem speziellen Fall hinzufügen:

Nssenforcevalidcerts aus 

5. Obwohl nicht ausschließlich erforderlich, ist es wichtig, ein Kennwort für die NSS -Datenbank festzulegen:

# certutil -w -d/etc/httpd/alias 
Legen Sie das Kennwort für NSS -Datenbankseiten fest: 1 2