GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Sichern Sie Apache mit Let's Encrypt auf CentOS 7 - Schritt-für-Schritt-Prozess?

SSL-Zertifikate werden verwendet, um Benutzern, die auf Ihre Anwendung zugreifen, zusätzliche Sicherheit zu bieten. Es verschlüsselt den Datenverkehr zwischen Server und Client. Let’s Encrypt ist eine Zertifizierungsstelle (CA). Es bietet kostenlose TLS/SSL-Zertifikate zum Aktivieren von verschlüsseltem HTTPS auf Webservern. Es ist eine automatisierte, kostenlose und offene Zertifizierungsstelle.

Hier bei LinuxAPT helfen wir unseren Kunden im Rahmen unserer Server Management Services regelmäßig dabei, verwandte Let's Encrypt-Abfragen durchzuführen.

In diesem Zusammenhang werden wir untersuchen, wie Sie Apache mit Let's Encrypt unter CentOS 7 sichern können, indem Sie das kostenlose SSL-Zertifikat von Let's Encrypt installieren.


Wie installiere ich Let's Encrypt auf CentOS 7?

SSL-Zertifikate von Let's Encrypt sind 90 Tage ab Ausstellungsdatum gültig. Let's Encrypt SSL-Zertifikate werden heute standardmäßig von allen gängigen Browsern als vertrauenswürdig eingestuft.

Stellen Sie vor Beginn dieses Installationsvorgangs sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Ein unter CentOS 7 ausgeführtes System mit einem Nicht-Root-Benutzer mit sudo-Berechtigungen.
  • Apache sollte installiert und konfiguriert sein, wie in diesem Tutorial erwähnt.
  • Verwenden Sie einen virtuellen Apache-Host für Ihre Domain, wie in diesem Tutorial erwähnt.
  • Ihr Domainname sollte auf Ihre Server-IP-Adresse verweisen.


1. Certbot-Client installieren

Beginnen Sie mit der Installation des Certbot-Clientpakets auf Ihrem Server, um ein SSL-Zertifikat von Let’s Encrypt zu erhalten. Der Certbot ist ein Tool zum Abrufen von SSL-Zertifikaten von Let’s Encrypt und zum automatischen Aktivieren von HTTPS auf Ihrem Server.

Das certbot-Paket wird von EPEL bereitgestellt. Also müssen wir das EPEL-Repository aktivieren, indem wir :

eingeben
$ sudo yum install epel-release

Installieren Sie nun den Certbot-Client, indem Sie den folgenden Befehl ausführen:

$ sudo yum install httpd mod_ssl python-certbot-apache

Überprüfen Sie die certbot-Installation nach Typ:

$ certbot --version

Wenn die Installation erfolgreich ist, wird Ihnen die Version von certbot angezeigt.


2. Firewall einrichten

Wenn Sie keine Firewall ausführen, können Sie fortfahren.

Um SSL auf Ihrem Webserver zu installieren, sollten Sie sicherstellen, dass Port 80 und 443 in Ihrer Firewall geöffnet sind. Sie können Ports innerhalb von Firewalld mit den folgenden Befehlen öffnen:

$ sudo firewall-cmd --add-service=http
$ sudo firewall-cmd --add-service=https
$ sudo firewall-cmd --runtime-to-permanent

Wenn auf Ihrem Server iptables läuft, sollten Sie die folgenden Befehle ausführen, um den Datenverkehr auf Port 80 und Port 443 zu aktivieren:

$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT


3. Konfigurieren Sie Let's Encrypt SSL auf Apache

Jetzt ist alles bereit, also werden wir ein SSL-Zertifikat von Let's Encrypt anfordern. Das Anfordern mit certbot ist ein sehr einfacher Vorgang. Let's Encrypt validiert den Besitz der Domain und stellt bei Erfolg ein SSL für eine angeforderte Domain aus. Es gibt mehrere Möglichkeiten, ein Let's Encrypt-Zertifikat über Plugins zu erhalten. Führen Sie den folgenden Befehl aus, um SSL anzufordern:

$ sudo certbot --apache -d example.com -d www.example.com

Im obigen Befehl wird ein SSL-Zertifikat für die Domains example.com und www.example.com angefordert.

Wenn Sie certbot zum ersten Mal ausführen, werden Sie aufgefordert, eine E-Mail-Adresse einzugeben, die zum Senden von E-Mail-Benachrichtigungen in Bezug auf SSL-Erneuerung und -Ablauf verwendet werden kann. Außerdem werden Sie aufgefordert, den Nutzungsbedingungen zuzustimmen.

Danach kommuniziert certbot mit dem Let's Encrypt-Server und führt dann eine Abfrage durch, um zu bestätigen, dass Sie der Eigentümer der Domain sind, für die Sie ein Zertifikat anfordern.

Wenn die Validierung erfolgreich war, werden Sie gefragt, wie Sie Ihre HTTPS-Einstellungen konfigurieren möchten:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
 1: No redirect - Make no further changes to the webserver configuration.
 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
 new sites, or if you're confident your site works on HTTPS. You can undo this
 change by editing your web server's configuration.
 Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Treffen Sie Ihre Auswahl und fahren Sie mit dem nächsten Schritt fort. Wir empfehlen Ihnen, die Umleitungsoption zu wählen, wenn Sie die Konfigurationsdatei nicht manuell ändern möchten.

Am Ende wird Ihnen eine Erfolgsmeldung angezeigt.

Schließlich ist Ihre Domain mit dem SSL-Zertifikat von Let’s Encrypt sicher. Sie können dies überprüfen, indem Sie Ihre Website mit dem HTTPS-Protokoll besuchen.


Andere sichere SSL-Einstellungen für Apache

Die standardmäßige SSL-Konfiguration von CentOS mit der Apache-Version ist veraltet, sodass sie weniger sicher ist und Sicherheitsprobleme verursacht. Daher müssen wir einige Einstellungen ändern, um es sicherer zu machen.

Um sicherere SSL-bezogene Optionen zu konfigurieren, öffnen Sie die Datei ssl.conf:

$ sudo vi /etc/httpd/conf.d/ssl.conf

Zuerst sollten Sie die Zeilen SSLProtocol und SSLCipherSuit in der Datei finden und auskommentieren, oder Sie können diese beiden Zeilen löschen:

# SSLProtocol all -SSLv2
. . .
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
Now append the following lines after VirtualHost block in /etc/httpd/conf.d/ssl.conf file.
. . .
. . .
# Begin copied text
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11

Als nächstes speichern und schließen Sie die Datei. Wir müssen den Apache-Dienst neu starten, damit die Änderungen wirksam werden.

Führen Sie den folgenden Befehl aus:

$ sudo systemctl restart httpd

Wie führe ich die automatische Erneuerung des SSL-Zertifikats von Let's Encrypt durch?

SSL-Zertifikate von Let's Encrypt sind 90 Tage lang gültig, Sie müssen sie also erneuern, bevor sie ablaufen. Um die Zertifikate automatisch zu erneuern, bevor sie ablaufen, erstellen wir einen Cronjob, der zweimal am Tag ausgeführt wird und jedes Zertifikat 30 Tage vor seinem Ablauf automatisch verlängert.

Lassen Sie uns die crontab bearbeiten, um einen neuen Job mit dem folgenden Befehl zu erstellen:

$ sudo crontab -e

Fügen Sie die folgenden Zeilen am Ende der Datei hinzu, damit sie zweimal am Tag ausgeführt wird:

0 */12 * * * /usr/bin/certbot renew >> /var/log/le-renew.log

Speichern und schließen Sie die Datei. Um in Kraft zu treten, wird Apache automatisch neu gestartet, wenn Zertifikate erneuert werden.

Sie können den Erneuerungsprozess testen, Sie können den Befehl certbot gefolgt von dem Schalter –dry-run verwenden:

$ sudo certbot renew --dry-run

Wenn kein Fehler auftritt, bedeutet dies, dass der Erneuerungsprozess erfolgreich war.


[Benötigen Sie dringend Hilfe bei der Behebung von Apache-Konfigurationsfehlern? Wir können dir helfen. ]


Cent OS
  1. Sichern Sie Apache mit Lets Encrypt auf Ubuntu 20.04

  2. Sichern Sie Nginx mit Lets Encrypt unter CentOS 7

  3. Installieren Sie phpMyAdmin mit Nginx unter CentOS 7 – Schritt-für-Schritt-Prozess?

  4. phpMyAdmin mit Apache auf CentOS 7 installieren – Schritt für Schritt?

  5. So installieren Sie Let’s Encrypt mit Apache unter CentOS 7

So installieren Sie Let’s Encrypt SSL mit Apache unter CentOS 7

So sichern Sie Apache mit Let’s Encrypt SSL-Zertifikat auf CentOS 8

Sichern Sie Nginx mit Let’s Encrypt SSL-Zertifikat auf Ubuntu 18.04

So sichern Sie Nginx mit dem Let’s Encrypt SSL-Zertifikat

So sichern Sie Apache mit Let’s Encrypt unter CentOS 8

So sichern Sie Nginx mit Let’s Encrypt unter CentOS 8