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

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

In diesem Artikel haben wir die notwendigen Schritte zum Sichern von Nginx mit let’s encrypt auf CentOS 8 erklärt. Bevor Sie mit diesem Tutorial fortfahren, stellen Sie sicher, dass Sie als Benutzer mit angemeldet sind sudo Privilegien. Alle Befehle in diesem Tutorial sollten als Nicht-Root-Benutzer ausgeführt werden.

Let's Encrypt ist eine Zertifizierungsstelle, die kostenlose SSL-Zertifikate für die Website bereitstellt, die seit April 2016 in Betrieb ist und von Unternehmen und Internetorganisationen der Welt wie Mozilla, Cisco, Chrome unterstützt wird , Akamai usw.

Voraussetzung:

  • Betriebssystem mit CentOS Linux
  • Server-IPv4-Adresse mit Superuser-Berechtigungen (Root-Zugriff)
  • Gnome-Terminal für Linux-Desktop
  • PuTTy SSH-Client für Windows oder macOS
  • Powershell für Windows 10/11
  • Vertraut mit DNF-Befehlen

Nginx mit Let’s Encrypt auf CentOS sichern

Schritt 1. Der erste Befehl aktualisiert die Paketlisten, um sicherzustellen, dass Sie die neueste Version und Abhängigkeiten erhalten.

sudo dnf install epel-release
sudo dnf update
sudo dnf install mod_ssl openssl

Vor der Installation der Let’s Encrypt SSL-Domain sollte gut zugegriffen werden und der virtuelle Nginx-Host verwendet werden. Lesen Sie das Tutorial zur Installation von Nginx unter CentOS 8.

Schritt 2. Certbot installieren.

Das certbot-Paket ist nicht in den standardmäßigen CentOS 8-Repositories enthalten, kann aber von der Website des Anbieters heruntergeladen werden:

sudo wget -P /usr/local/bin https://dl.eff.org/certbot-auto
sudo chmod +x /usr/local/bin/certbot-auto

Generieren Sie als Nächstes einen neuen Satz von 2048-Bit-DH-Parametern mit dem folgenden Befehl:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Um ein SSL-Zertifikat für die Domain zu erhalten, verwenden wir das Webroot-Plugin, das funktioniert, indem es eine temporäre Datei zur Validierung der angeforderten Domain erstellt das Verzeichnis ${webroot-path}/.well-known/acme-challenge:

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

Um doppelten Code zu vermeiden, erstellen Sie die folgenden zwei Snippets, die in alle Blockdateien des Nginx-Servers aufgenommen werden:

sudo mkdir /etc/nginx/snippets
$ nano /etc/nginx/snippets/letsencrypt.conf

location ^~ /.well-known/acme-challenge/ {
  allow all;
  root /var/lib/letsencrypt/;
  default_type "text/plain";
  try_files $uri =404;
}
$ nano /etc/nginx/snippets/ssl.conf

ssl_dhparam /etc/ssl/certs/dhparam.pem;

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 30s;

add_header Strict-Transport-Security "max-age=63072000" always;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;

Sobald die Snippets erstellt sind, öffnen Sie den Domänenserverblock und fügen Sie das letsencrypt.conf-Snippet ein, wie unten gezeigt:

$ nano /etc/nginx/conf.d/example.com.conf

server {
  listen 80;
  server_name example.com www.example.com;

  include snippets/letsencrypt.conf;
}

Nginx-Konfiguration neu laden, damit die Änderungen wirksam werden:

sudo systemctl reload nginx

Führen Sie dann diesen Befehl aus, um ein Zertifikat zu erhalten, und lassen Sie Certbot Ihre Nginx-Konfiguration automatisch bearbeiten, um es bereitzustellen, und aktivieren Sie den HTTPS-Zugriff in einem einzigen Schritt:

sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d your-domain.com -d www.your-domain.com

Zum Schluss bearbeiten Sie Ihren Domain-Server-Block wie folgt:

$ nano /etc/nginx/conf.d/example.com.conf

server {
    listen 80;
    server_name www.your-domain.com your-domain.com;

    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.your-domain.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # . . . other code
}

Laden Sie den Nginx-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl reload nginx

Schritt 4. Überprüfen Sie Ihren Zertifikatsstatus.

Sie können sicherstellen, dass Certbot Ihr SSL-Zertifikat korrekt erstellt hat, indem Sie den SSL-Server-Test des Cloud-Sicherheitsunternehmens Qualys verwenden. Öffnen Sie den folgenden Link in Ihrem bevorzugten Webbrowser und ersetzen Sie your-domain.com mit Ihrer Basisdomain:

https://www.ssllabs.com/ssltest/analyze.html?d=your-domain.com

Herzlichen Glückwunsch, Sie haben gelernt, wie man Nginx mit let’s encrypt unter CentOS 8 sichert. Wenn Sie Fragen haben, hinterlassen Sie bitte unten einen Kommentar.


Cent OS
  1. So installieren Sie Phorum mit Nginx unter CentOS 7

  2. Sichern Sie Nginx mit Let’s Encrypt auf Ubuntu 18.04 – wie geht das?

  3. So sichern Sie Nginx mit Letsencrypt unter Rocky Linux/Centos 8

  4. So installieren Sie Let’s Encrypt auf CentOS 8 mit Nginx

  5. So sichern Sie Nginx mit Let’s Encrypt unter Ubuntu 20.04

So konfigurieren Sie Nginx Server Block und sichern Nginx mit Let’s Encrypt SSL unter Rocky Linux 8 / CentOS 8

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

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 Ubuntu 20.04

So sichern Sie Apache mit Let’s Encrypt unter Ubuntu 20.04