AWS Tutorial For Beginners | AWS Full Course - Learn AWS In 10 Hours | AWS Training | Edureka
Inhaltsverzeichnis:
- Voraussetzungen
- Certbot installieren
- Generierung der Dh (Diffie-Hellman) Gruppe
- Erhalten eines SSL-Zertifikats von Let's Encrypt
- Automatische Erneuerung Lassen Sie uns das SSL-Zertifikat verschlüsseln
- Fazit
Let's Encrypt ist eine kostenlose, automatisierte und offene Zertifizierungsstelle, die von der Internet Security Research Group (ISRG) entwickelt wurde und kostenlose SSL-Zertifikate bereitstellt.
Von Let's Encrypt ausgestellte Zertifikate werden von allen gängigen Browsern als vertrauenswürdig eingestuft und sind ab dem Ausstellungsdatum 90 Tage lang gültig.
Dieses Tutorial zeigt, wie man ein kostenloses Let's Encrypt SSL-Zertifikat auf Debian 10, Buster, installiert, auf dem Nginx als Webserver ausgeführt wird. Wir zeigen auch, wie Nginx für die Verwendung des SSL-Zertifikats und die Aktivierung von HTTP / 2 konfiguriert wird.
Voraussetzungen
Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie mit dem Handbuch fortfahren:
- Als root oder Benutzer mit sudo-Berechtigungen angemeldet. Die Domain, für die Sie das SSL-Zertifikat erhalten möchten, muss auf Ihre öffentliche Server-IP verweisen. Wir werden
example.com
Nginx installiert.
Certbot installieren
Wir werden das Certbot-Tool verwenden, um die Zertifikate zu erhalten und zu erneuern.
Certbot ist ein voll funktionsfähiges und benutzerfreundliches Tool, das die Aufgaben zum Abrufen und Erneuern von Let's Encrypt SSL-Zertifikaten und zum Konfigurieren von Webservern für die Verwendung der Zertifikate automatisiert.
Das certbot-Paket ist in den Standard-Debian-Repositories enthalten. Führen Sie die folgenden Befehle aus, um certbot zu installieren:
sudo apt update
sudo apt install certbot
Generierung der Dh (Diffie-Hellman) Gruppe
Diffie-Hellman-Schlüsselaustausch (DH) ist eine Methode zum sicheren Austauschen von kryptografischen Schlüsseln über einen ungesicherten Kommunikationskanal.
Wir werden einen neuen Satz von 2048-Bit-DH-Parametern generieren, um die Sicherheit zu erhöhen:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Sie können die Größe auch auf bis zu 4096 Bit ändern, die Generierung kann jedoch je nach Systementropie länger als 30 Minuten dauern.
Erhalten eines SSL-Zertifikats von Let's Encrypt
Um ein SSL-Zertifikat für die Domain zu erhalten, verwenden wir das Webroot-Plugin.
${webroot-path}/.well-known/acme-challenge
eine temporäre Datei zum Überprüfen der angeforderten Domain im
${webroot-path}/.well-known/acme-challenge
. Der Let's Encrypt-Server sendet HTTP-Anforderungen an die temporäre Datei, um zu überprüfen, ob die angeforderte Domäne auf den Server aufgelöst wurde, auf dem Certbot ausgeführt wird.
Wir werden alle HTTP-Anforderungen für
.well-known/acme-challenge
einem einzelnen Verzeichnis
.well-known/acme-challenge
,
/var/lib/letsencrypt
.
Führen Sie die folgenden Befehle aus, um das Verzeichnis zu erstellen und für den Nginx-Server schreibbar zu machen:
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
Um zu vermeiden, dass Code dupliziert wird, erstellen wir zwei Snippets, die in allen Nginx-Serverblockdateien enthalten sind.
Öffne deinen Texteditor und erstelle das erste Snippet,
letsencrypt.conf
:
sudo nano /etc/nginx/snippets/letsencrypt.conf
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
Das zweite Snippet
ssl.conf
enthält die von Mozilla empfohlenen Chipper, aktiviert OCSP-Heftung, HTTP Strict Transport Security (HSTS) und erzwingt einige sicherheitsgerichtete
sudo nano /etc/nginx/snippets/ssl.conf
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; 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;
Öffnen Sie anschließend die Domain Server-Blockdatei und
letsencrypt.conf
Snippet
letsencrypt.conf
wie folgt hinzu:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Erstellen Sie eine symbolische Verknüpfung mit dem
sites-enabled
Verzeichnis, um den Domain-Server-Block zu aktivieren:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Starten Sie den Nginx-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart nginx
Sie können jetzt die SSL-Zertifikatdateien abrufen, indem Sie den folgenden Befehl ausführen:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Wenn das SSL-Zertifikat erfolgreich erhalten wurde, wird die folgende Nachricht auf Ihrem Terminal gedruckt:
IMPORTANT NOTES: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-02-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Bearbeiten Sie den Domänenserverblock und fügen Sie die SSL-Zertifikatdateien wie folgt hinzu:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.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; 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 }
Die obige Konfiguration weist Nginx an, von HTTP zu HTTPS und von der WWW-Version zur Nicht-WWW-Version umzuleiten.
Starten Sie den Nginx-Dienst neu oder laden Sie ihn neu, damit die Änderungen wirksam werden:
sudo systemctl restart nginx
Öffnen Sie Ihre Website mit
https://
und Sie werden ein grünes Schlosssymbol bemerken.
Automatische Erneuerung Lassen Sie uns das SSL-Zertifikat verschlüsseln
Die Zertifikate von Let's Encrypt sind 90 Tage gültig. Um die Zertifikate vor Ablauf automatisch zu erneuern, erstellt das certbot-Paket einen Cronjob, der zweimal täglich ausgeführt wird und jedes Zertifikat 30 Tage vor Ablauf automatisch erneuert.
Bei der Erneuerung muss der Nginx-Dienst neu geladen werden, damit der Server das Zertifikat lädt.
--renew-hook "systemctl reload nginx"
an die Datei
/etc/cron.d/certbot
, so wie es aussieht:
sudo nano /etc/cron.d/certbot
/etc/cron.d/certbot
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
Testen Sie den automatischen Erneuerungsprozess, indem Sie diesen Befehl ausführen:
sudo certbot renew --dry-run
Wenn keine Fehler vorliegen, war der Erneuerungsprozess erfolgreich.
Fazit
Ein SSL-Zertifikat ist heutzutage ein Muss. Es sichert Ihre Website, erhöht die Position des SERP-Rankings und ermöglicht Ihnen, HTTP / 2 auf Ihrem Webserver zu aktivieren.
In diesem Tutorial haben wir Ihnen gezeigt, wie Sie SSL-Zertifikate mit dem certbot-Skript generieren und erneuern. Wir haben Ihnen auch gezeigt, wie Sie Nginx für die Verwendung der Zertifikate konfigurieren.
Weitere Informationen zu Certbot finden Sie in der Certbot-Dokumentation.
nginx debian verschlüsseln wir certbot sslSidekick Lektion: Sichern, Sichern, Sichern
Roundup: 4 Backup-Utilities für mobile Geräte, die Sie anstoßen, um Ihre wertvollen Objekte zu schützen Daten.
So verschlüsseln Sie Laufwerke unter Windows 10 unter Umgehung von tpm
Obwohl TPM nicht auf allen Systemen vorhanden ist, ist es wichtig, BitLocker auf PCs zu aktivieren und zu verwenden. Hier erfahren Sie, wie Sie dieses heikle Problem umgehen können.
Sichern Sie Nginx mit let's encrypt unter Debian 9
In diesem Tutorial wird erklärt, wie Sie mit dem Certbot-Tool ein kostenloses SSL-Zertifikat für Nginx unter Debian 9 erhalten. Außerdem wird gezeigt, wie Sie Nginx so konfigurieren, dass es das SSL-Zertifikat verwendet und HTTP / 2 aktiviert.