What the heck is the event loop anyway? | Philip Roberts | JSConf EU
Inhaltsverzeichnis:
- Voraussetzungen
- Certbot installieren
- Generierung einer starken 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.
In diesem Tutorial erhalten Sie eine schrittweise Anleitung zur Installation eines kostenlosen Let's Encrypt-SSL-Zertifikats unter CentOS 8, 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
Bevor Sie fortfahren, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben:
- Sie haben einen Domainnamen, der auf Ihre öffentliche IP verweist. Wir verwenden
example.com
Sie haben Nginx auf Ihrem CentOS-Server installiert. Ihre Firewall ist so konfiguriert, dass Verbindungen an den Ports 80 und 443 akzeptiert werden.
Certbot installieren
Certbot ist ein kostenloses Befehlszeilentool, das den Vorgang zum Abrufen und Erneuern von Let's Encrypt SSL-Zertifikaten von und zum automatischen Aktivieren von HTTPS auf Ihrem Server vereinfacht.
Das certbot-Paket ist nicht in den Standard-CentOS 8-Repositorys enthalten, kann jedoch von der Website des Herstellers heruntergeladen werden.
Führen Sie den folgenden
wget
Befehl als root- oder sudo-Benutzer aus, um das certbot-Skript in das Verzeichnis
/usr/local/bin
herunterzuladen:
sudo wget -P /usr/local/bin
Sobald der Download abgeschlossen ist, machen Sie die Datei ausführbar:
sudo chmod +x /usr/local/bin/certbot-auto
Generierung einer starken Dh (Diffie-Hellman) Gruppe
Diffie-Hellman-Schlüsselaustausch (DH) ist eine Methode zum sicheren Austauschen von kryptografischen Schlüsseln über einen ungesicherten Kommunikationskanal.
Generieren Sie einen neuen Satz von 2048-Bit-DH-Parametern, indem Sie den folgenden Befehl eingeben:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Erhalten eines SSL-Zertifikats von Let's Encrypt
Um ein SSL-Zertifikat für die Domain zu erhalten, verwenden wir das Webroot-Plugin, mit dem eine temporäre Datei zur Validierung 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.
Zur Vereinfachung
.well-known/acme-challenge
wir alle HTTP-Anforderungen für
.well-known/acme-challenge
einem einzelnen Verzeichnis zu,
/var/lib/letsencrypt
.
Mit den folgenden Befehlen wird das Verzeichnis erstellt und für den Nginx-Server schreibbar gemacht.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Um das Duplizieren von Code zu vermeiden, erstellen Sie die folgenden zwei Snippets, die in allen Nginx-Serverblockdateien enthalten sind:
sudo mkdir /etc/nginx/snippets
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/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;
Das obige Snippet enthält die von Mozilla empfohlenen Chipper, aktiviert das OCSP-Heften, HTTP Strict Transport Security (HSTS) und erzwingt einige sicherheitsgerichtete
Öffnen Sie nach dem
letsencrypt.conf
Snippets den Domain-Server-Block und
letsencrypt.conf
Snippet
letsencrypt.conf
, wie unten gezeigt:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Laden Sie die Nginx-Konfiguration neu, damit die Änderungen wirksam werden:
sudo systemctl reload nginx
Führen Sie das Certbot-Tool mit dem Webroot-Plugin aus, um die SSL-Zertifikatdateien für Ihre Domain abzurufen:
sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Wenn Sie
certbot
zum ersten Mal aufrufen, installiert das Tool die fehlenden Abhängigkeiten.
Sobald das SSL-Zertifikat erfolgreich erhalten wurde, gibt certbot die folgende Meldung aus:
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-03-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Nachdem Sie die Zertifikatsdateien haben, können Sie Ihren Domain-Server-Block wie folgt bearbeiten:
/etc/nginx/conf.d/example.com.conf
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 }
Mit der obigen Konfiguration erzwingen wir HTTPS und leiten das WWW auf eine Nicht-WWW-Version um.
Laden Sie abschließend den Nginx-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl reload nginx
Öffnen Sie jetzt 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, erstellen Sie einen Cronjob, der zweimal täglich ausgeführt wird, und erneuern Sie alle Zertifikate 30 Tage vor Ablauf automatisch.
Verwenden Sie den Befehl
crontab
, um einen neuen Cronjob zu erstellen:
sudo crontab -e
Fügen Sie die folgende Zeile ein:
0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook "systemctl reload nginx"
Speichern und schließen Sie die Datei.
Um den Erneuerungsprozess zu testen, können Sie den Befehl certbot gefolgt von der
--dry-run
:
sudo certbot renew --dry-run
Wenn keine Fehler vorliegen, war der Testerneuerungsprozess erfolgreich.
Fazit
In diesem Tutorial haben wir Ihnen gezeigt, wie Sie mit dem Let's Encrypt-Client certbot SSL-Zertifikate für Ihre Domain herunterladen können. Wir haben auch Nginx-Snippets erstellt, um das Duplizieren von Code zu vermeiden, und Nginx für die Verwendung der Zertifikate konfiguriert. Am Ende des Tutorials haben wir einen Cronjob für die automatische Zertifikatserneuerung eingerichtet.
Weitere Informationen zu Certbot finden Sie auf der Dokumentationsseite.
nginx centos verschlüsseln wir certbot sslSichern Sie Nginx mit let's encrypt on centos 7
In diesem Lernprogramm erhalten Sie schrittweise Anweisungen zum Sichern von Nginx mit Let's Encrypt mithilfe des Certbot-Tools unter CentOS 7
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.
Sichere Nginx mit Let's Encrypt auf Ubuntu 18.04
Let's Encrypt ist eine kostenlose und offene Zertifizierungsstelle, die von der Internet Security Research Group entwickelt wurde. In diesem Tutorial werden wir Schritt für Schritt erklären, wie Sie Nginx mit Let's Encrypt mithilfe des Certbot-Tools unter Ubuntu 18.04 sichern können