AWS Tutorial For Beginners | AWS Full Course - Learn AWS In 10 Hours | AWS Training | Edureka
Inhaltsverzeichnis:
- Voraussetzungen
- Installieren Sie Certbot
- Generiere eine starke 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 Zertifizierungsstelle, die von der Internet Security Research Group (ISRG) erstellt wurde. Es bietet kostenlose SSL-Zertifikate über einen vollautomatisierten Prozess, der die manuelle Erstellung, Validierung, Installation und Erneuerung von Zertifikaten überflüssig macht.
Von Let's Encrypt ausgestellte Zertifikate werden heute von allen gängigen Browsern als vertrauenswürdig eingestuft.
In diesem Tutorial werden wir Schritt für Schritt erklären, wie Sie Ihren Apache mit Let's Encrypt mithilfe des Certbot-Tools unter Ubuntu 18.04 sichern können.
Voraussetzungen
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Domänenname, der auf Ihre öffentliche Server-IP verweist. Wir werden
example.com
Sie haben Apache mit einem virtuellen Apache-Host für Ihre Domain installiert.
Installieren Sie Certbot
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 automatisieren kann. Das certbot-Paket ist in den Standard-Ubuntu-Repositories enthalten.
Aktualisieren Sie die Paketliste und installieren Sie das certbot-Paket:
sudo apt update
sudo apt install certbot
Generiere eine starke 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
Wenn Sie möchten, können Sie die Größe auf bis zu 4096 Bit ändern. In diesem Fall kann die Generierung je nach Systementropie jedoch 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, 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
.
Die folgenden Befehle erstellen das Verzeichnis und machen es für den Apache-Server beschreibbar.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Um das Duplizieren von Code zu vermeiden, erstellen Sie die folgenden zwei Konfigurationsschnipsel:
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" 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 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Das obige Snippet verwendet die von Cipherli.st empfohlenen Chipper, aktiviert OCSP-Heftung, HTTP Strict Transport Security (HSTS) und erzwingt einige sicherheitsgerichtete
mod_ssl
mod_headers
vor dem Aktivieren der Konfigurationsdateien sicher, dass sowohl
mod_ssl
als auch
mod_headers
aktiviert sind, indem Sie
mod_ssl
mod_headers
:
sudo a2enmod ssl
sudo a2enmod headers
Aktivieren Sie als Nächstes die SSL-Konfigurationsdateien, indem Sie die folgenden Befehle ausführen:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Aktivieren Sie das HTTP / 2-Modul, mit dem Ihre Websites schneller und robuster werden:
sudo a2enmod
Laden Sie die Apache-Konfiguration neu, damit die Änderungen wirksam werden:
sudo systemctl reload apache2
Jetzt können wir das Certbot-Tool mit dem Webroot-Plugin ausführen und die SSL-Zertifikatsdateien abrufen, indem wir Folgendes eingeben:
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 abgerufen 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 2018-10-28. 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:
Nachdem Sie die Zertifikatsdateien haben, bearbeiten Sie die Konfiguration Ihres virtuellen Domain-Hosts wie folgt:
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
Mit der obigen Konfiguration erzwingen wir HTTPS und leiten von der WWW-Version zur Nicht-WWW-Version um. Es steht Ihnen frei, die Konfiguration an Ihre Bedürfnisse anzupassen.
Laden Sie den Apache-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl reload apache2
Sie können Ihre Website jetzt mit
https://
öffnen und sehen ein grünes Schlosssymbol.
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.
Sobald das Zertifikat erneuert wurde, müssen wir auch den Apache-Dienst neu laden.
--renew-hook "systemctl reload apache2"
an die Datei
/etc/cron.d/certbot
, so dass es wie folgt aussieht:
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 apache2"
Um den Erneuerungsprozess zu testen, können Sie den certbot
--dry-run
Schalter verwenden:
sudo certbot renew --dry-run
Wenn keine Fehler vorliegen, war der Erneuerungsprozess erfolgreich.
Fazit
In diesem Lernprogramm haben Sie den Client-Certbot Let's Encrypt verwendet, um SSL-Zertifikate für Ihre Domain herunterzuladen. Sie haben auch Apache-Snippets erstellt, um das Duplizieren von Code zu vermeiden, und Apache für die Verwendung der Zertifikate konfiguriert. Am Ende des Tutorials haben Sie einen Cronjob für die automatische Zertifikatserneuerung eingerichtet.
apache ubuntu verschlüsseln wir certbot sslDieser Beitrag ist Teil der Installationsanleitung für die Lampenstapel-auf-Ubuntu-18-04-Serie.
Andere Beiträge in dieser Reihe:
• Installieren von Apache unter Ubuntu 18.04 • Einrichten von virtuellen Apache-Hosts unter Ubuntu 18.04 • Sichern von Apache mit Let's Encrypt unter Ubuntu 18.04 • Installieren von MySQL unter Ubuntu 18.04 • Installieren von PHP unter Ubuntu 18.04Sichere 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
Sicherer Apache mit let's encrypt on centos 7
In diesem Lernprogramm werden die Schritte beschrieben, die zum Installieren eines kostenlosen Let's Encrypt-SSL-Zertifikats auf einem CentOS 7-Server erforderlich sind, auf dem Apache als Webserver ausgeführt wird.
Sicherer Apache mit let's encrypt on centos 8
In diesem Tutorial wird erklärt, wie Sie ein kostenloses Let's Encrypt SSL-Zertifikat unter CentOS 8 installieren, auf dem Apache als Webserver ausgeführt wird. Wir werden das Certbot-Tool verwenden, um die Zertifikate zu erhalten und zu erneuern.