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 sind ab dem Ausstellungsdatum 90 Tage lang gültig und werden heute von allen gängigen Browsern als vertrauenswürdig eingestuft.
Dieses Tutorial führt Sie durch den Prozess des Erwerbs eines kostenlosen Let's Encrypt mit dem Certbot-Tool unter Debian 9. Wir zeigen auch, wie Sie Apache so konfigurieren, dass es das neue SSL-Zertifikat verwendet und HTTP / 2 aktiviert.
Voraussetzungen
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Als Benutzer mit sudo-Berechtigungen angemeldet. Geben Sie einen Domainnamen an, der auf Ihre öffentliche Server-IP verweist. Wir werden
example.com
.Apache installieren. Ein virtueller Apache-Host für Ihre Domain. Sie können diese Anweisungen befolgen, um Einzelheiten zum Erstellen eines solchen zu erfahren.
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 automatisieren kann. Das certbot-Paket ist in den Standard-Debian-Repositories enthalten.
Aktualisieren Sie die Paketliste und installieren Sie das certbot-Paket mit den folgenden Befehlen:
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.
So generieren Sie einen neuen Satz von 2048-Bit-DH-Parametern:
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 unsere 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 Apache-Server schreibbar gemacht.
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 das HTTP / 2-Modul, mit dem Ihre Websites schneller und robuster werden:
sudo a2enmod
Aktivieren Sie die SSL-Konfigurationsdateien, indem Sie die folgenden Befehle ausführen:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Laden Sie die Apache-Konfiguration neu, damit die Änderungen wirksam werden:
sudo systemctl reload apache2
Verwenden Sie das Certbot-Tool mit dem Webroot-Plugin, um die SSL-Zertifikatdateien abzurufen:
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: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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
Ö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 alle Zertifikate 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
, damit es so 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"
Verwenden Sie den certbot
--dry-run
Schalter, um den Erneuerungsprozess zu testen:
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 abzurufen. 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 debian verschlüsseln wir certbot sslDieser Beitrag ist Teil der Anleitung zur Installation von LAMP Stack unter Debian 9.
Andere Beiträge in dieser Reihe:
• So installieren Sie Apache unter Debian 9 • So installieren Sie PHP unter Debian 9 • So richten Sie virtuelle Apache-Hosts unter Debian 9 ein • So installieren Sie MariaDB unter Debian 9 • Sichern Sie Apache mit Let's Encrypt unter Debian 9Sichern 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.
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.