GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie SSL-Zertifikate von Lets Encrypt unter Ubuntu 18.04

Certbot ist ein benutzerfreundlicher automatischer Client, der SSL/TLS-Zertifikate für Ihren Webserver abruft und bereitstellt. Es ist ein EFF-Tool, das verwendet wird, um Zertifikate von Let’s Encrypt zu erhalten und HTTPS auf Ihrem Server automatisch zu aktivieren. Kurz gesagt, es fungiert als offizieller "Let's Encrypt-Client" oder "Let's Encrypt Python-Client". Es verwendet die Automated Certificate Management Environment (ACME), um automatisch kostenlose SSL-Zertifikate bereitzustellen, denen die meisten Browser vertrauen. Daher funktioniert es für alle anderen CAs, die das ACME-Protokoll unterstützen.

In diesem Artikel erkläre ich, wie Sie kostenlose SSL-Zertifikate von Let’s encrypt mit Certbot für Apache und Nginx auf Ubuntu 18.04-Servern erhalten und installieren.

Voraussetzungen

  • Ein Ubuntu Bionic Beaver (18.04)-Server mit Root-Rechten, um die erforderlichen Pakete gemäß den Anforderungen zu installieren.
  • Eine vollständig qualifizierte Domain, die registriert ist und über ordnungsgemäße DNS-Einträge verfügt. Hier in diesem Artikel verwende ich durchgehend die Domain fosscloudy.com.

Certbot installieren

Um die SSL-Zertifikate von Letsencrypt abzurufen, müssen wir zunächst die Certbot-Software installieren. Auch wenn Certbot in letzter Zeit in Ubuntu zur Verfügung gestellt wird, sind die Pakete dort tendenziell veraltet. Daher ist es ratsam, die Ubuntu-Software-Repositories mit der neuesten Software für die Installation zu verwenden. Sie können Certbot mit den folgenden Befehlen installieren:

#add-apt-repository ppa:certbot/certbot
#apt update
#apt install certbot

Sie können die installierte Certbot-Version mit diesem Befehl unten bestätigen:

# certbot --version
certbot 0.23.0

Zusätzlich können wir diesen Befehl "certbot plugins" verwenden, um die verfügbaren Certbot-Plugins zu erfahren, die auf Ihrem Server installiert sind.

# certbot plugins
Saving debug log to /var/log/letsencrypt/letsencrypt.log

* standalone
Description: Spin up a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator

* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
-------------------------------------------------------------------------------

Standardmäßig sind in diesem Paket nur Standalone- und Webroot-Plugins enthalten. Gemäß unserem Zweck können wir alle erforderlichen Plugins nacheinander aktivieren.

Let's Encrypt SSL-Zertifikat auf Apache einrichten

Certbot stellt mit diesem Tool ein Apache-Plugin bereit, um die SSL-Zertifikate einfacher auszustellen. Wir können dieses Plugin installieren, indem wir den folgenden Befehl ausführen:

#apt install python-certbot-apache

Wir können dieses Tool jetzt verwenden, aber um SSL für die Domänen zu konfigurieren, müssen wir einige der Apache-Konfigurationsdateien überprüfen. Zum Ausstellen des SSL-Zertifikats für eine Domain versucht Certbot, den genauen virtuellen Host der Domain in Ihrer Server-Apache-Konfiguration abzurufen. Sie können auf meinen vorherigen Artikel verweisen, der Sie beim Einrichten eines virtuellen Domänenhosts unterstützt. Unter der Annahme, dass ein geeigneter virtueller Host für unsere Domain vorhanden ist, können wir diesen Befehl ausführen, um SSL für unsere Domain fosscloudy.com zu installieren.

# certbot --apache -d fosscloudy.com -d www.fosscloudy.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for fosscloudy.com
http-01 challenge for www.fosscloudy.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/fosscloudy.com.conf to ssl vhost in /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://fosscloudy.com and
https://www.fosscloudy.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=fosscloudy.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.fosscloudy.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com-0002/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com-0002/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. 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: https://eff.org/donate-le

Das obige interaktive Verfahren führt Sie durch alle Informationen, die zum Signieren/Installieren des Zertifikats für Ihre ausgewählte Domäne erforderlich sind. Ihr Domänen-SSL wird mit dieser Befehlsausführung automatisch heruntergeladen, installiert und ordnungsgemäß in Ihrem virtuellen Domänenhost konfiguriert. Jetzt können Sie mit HTTPS auf Ihre Domain zugreifen und deren Funktion bestätigen oder den SSL-Status im SSL-Checker überprüfen.

Wenn Sie mehrere virtuelle Hosts/Domänen konfiguriert haben, können Sie optional den folgenden Befehl verwenden, um SSL-Zertifikate für sie zu installieren.

#certbot --apache

Certbot fordert Sie auf, die im neuen Zertifikat enthaltenen Domänen auszuwählen.

Wenn Sie nicht möchten, dass Certbot Ihren virtuellen Domain-Host automatisch mit dem neuen SSL-Zertifikat installiert/konfiguriert, können Sie den folgenden Befehl verwenden, um einfach das SSL-Zertifikat zu generieren. Sie können es später manuell konfigurieren.

#certbot --apache certonly

Let's Encrypt SSL-Zertifikat auf Nginx einrichten

Für Ihre Server, auf denen der Nginx-Webserver ausgeführt wird, können wir das Certbot Nginx-Plugin verwenden, um die SSL-Zertifikate automatisch zu erhalten und zu installieren. Sie können dieses Plugin installieren, indem Sie den folgenden Befehl ausführen:

#apt install python-certbot-nginx

Wir sind jetzt bereit, dieses Tool zu verwenden, aber um SSL für die Domains zu konfigurieren, müssen wir einige der Nginx-Konfigurationsdateien dafür überprüfen. Für die Ausstellung des SSL-Zertifikats für eine Domain versucht Certbot, den genauen virtuellen Host der Domain in Ihrer Nginx-Serverkonfiguration abzurufen. Unter der Annahme, dass ein geeigneter virtueller Host für unsere Domain vorhanden ist, können wir diesen Befehl ausführen, um SSL für unsere Domain fosscloudy.com zu installieren.

# certbot --nginx -d fosscloudy.com -d www.fosscloudy.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: N
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for fosscloudy.com
http-01 challenge for www.fosscloudy.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/fosscloudy.com.conf
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/fosscloudy.com.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/fosscloudy.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/fosscloudy.com.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://fosscloudy.com and
https://www.fosscloudy.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=fosscloudy.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.fosscloudy.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- 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: https://eff.org/donate-le

Dieses selbsterklärende interaktive Verfahren hilft Ihnen, SSL-Zertifikate für Ihre Domain automatisch zu generieren/installieren/konfigurieren. Ihr Domänen-SSL wird mit dieser Befehlsausführung automatisch heruntergeladen, installiert und ordnungsgemäß in Ihrem virtuellen Domänenhost konfiguriert. Jetzt können Sie mit HTTPS auf Ihre Domain zugreifen und deren Funktion bestätigen oder den SSL-Status im SSL-Checker überprüfen. Sie können meine Domain fosscloudy.com durch Ihre ersetzen und denselben Befehl ausführen, um Ihr SSL-Zertifikat zu generieren.

Ähnlich wie beim Apache-Plugin können Sie, wenn Sie mehrere virtuelle Hosts/Domains konfiguriert haben, den folgenden Befehl verwenden, um SSL-Zertifikate für alle zu installieren.

#certbot --nginx

Certbot fordert Sie auf, die im neuen Zertifikat enthaltenen Domänen auszuwählen.

Wenn Sie außerdem nicht möchten, dass Certbot Ihren virtuellen Domänenhost automatisch mit dem neuen SSL-Zertifikat installiert/konfiguriert, können Sie den folgenden Befehl verwenden, um einfach das SSL-Zertifikat zu generieren, das Sie später manuell konfigurieren können.

#certbot --nginx certonly

Einrichten von Let's Encrypt Wildcard-Zertifikaten mit Certbot

Let's Encrypt unterstützt seit Kurzem Wildcard-Zertifikate mit seinem neuen ACME2-Protokoll. Das bedeutet, dass Sie ein einzelnes Wildcard-Zertifikat wie *.fosscloudy.com haben und es auf allen anderen Domain-Subdomains wie docs.fosscloudy.com, blog.fosscloudy.com, mail.fosscloudy.com usw. verwenden können. Das macht es sehr einfach, Zertifikate für die zahlreichen Domain-Subdomains effizient zu verwalten. Sie können dieses Wildcard-SSL-Zertifikat für fosscloudy.com generieren, indem Sie den folgenden Befehl ausführen. Sie können diesen Befehl ändern, indem Sie fosscloudy.com durch Ihre bevorzugte Domain ersetzen.

# certbot certonly --manual -d *.fosscloudy.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for fosscloudy.com

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.fosscloudy.com with the following value:

z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com-0001/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com-0001/privkey.pem
Your cert will expire on 2018-09-03. 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: https://eff.org/donate-le

Wie in diesem interaktiven Verfahren erwähnt, werden Sie aufgefordert, Ihren DNS-Einträgen einen bestimmten TXT-Eintrag hinzuzufügen. In meinem Fall wurde berichtet, dass TXT wie folgt eingerichtet werden soll:

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.fosscloudy.com with the following value:

z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue

Bei Ihrem DNS-Anbieter erstellen Sie einen neuen DNS-TXT-Eintrag mit:

Record Name: _acme-challenge (you may or may not need the .fosscloudy.com suffix depending on your DNS provider.
Record Value: z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk (replace this with the value provided by Certbot)
 

Speichern Sie Ihre DNS-Einstellungen und drücken Sie im Certbot-Fenster die Eingabetaste, um die Überprüfung auszulösen und die Überprüfung abzuschließen. Sie müssen einige Zeit warten, bis der neue DNS-Eintrag über das Internet verbreitet wird. Ich habe 30 Minuten gewartet und die Eingabetaste gedrückt. Sie können sogar einen niedrigeren TTL-Wert einstellen, um diesen Vorgang zu beschleunigen.

Herzliche Glückwünsche!! Das Wildcard-Zertifikat für Ihre Domain fosscloudy.com wird generiert. Jetzt können Sie dieses Wildcard-Zertifikat mit jeder Subdomain verwenden, die Sie für Ihren Domainnamen erstellen. Zum Beispiel habe ich eine Unterdomäne für diese Domäne namens docs.fosscloudy.com erstellt. Es werden diese Wildcard-SSL-Zertifikate verwendet, die für die Hauptdomäne installiert sind. Sie können mit HTTPS im Browser auf Ihre Subdomain zugreifen und deren Funktionsfähigkeit bestätigen.

Automatische Erneuerung der SSL-Zertifikate

Sie können eine der oben genannten Methoden verwenden, um Ihre SSL-Zertifikate zu erhalten. Aber alle diese Let's Encrypt-Zertifikate sind kurzlebig und nur 90 Tage gültig. Daher ist es zwingend erforderlich, diese Zertifikate zu erneuern, bevor sie ablaufen, um das normale Funktionieren Ihrer Websites zu erleichtern. Sie können dies bei Bedarf manuell tun oder diesen Prozess mithilfe von Cronjobs oder dem Certbot-Client automatisieren.

Wenn ein Zertifikat durch die Ausführung der obigen Methoden erfolgreich installiert wurde, erhalten Sie eine Meldung ähnlich der folgenden:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"

Diese Nachricht gibt deutlich an, wie Sie Ihr Zertifikat in Zukunft mit dem "certbot renew" erneuern können Befehl.

Lassen Sie uns den automatischen Erneuerungsprozess mit dem folgenden Befehl testen:

#certbot renew

Dieser Befehl prüft, ob die Domänen-SSLs erneuert werden müssen, und erneuert die Domänen-SSLs, die erneuert werden müssen.

Eine gute Nachricht ist, dass die Certbot-Pakete auf unserem Server mit einem Cronjob ausgestattet sind, der unsere SSL-Zertifikate automatisch erneuert, bevor sie ablaufen. Da Let's Encrypt-Zertifikate 90 Tage lang gültig sind, ist es sehr ratsam, diese Funktion zu nutzen.

# cat /etc/cron.d/certbot
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc. Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

Dieser Cron wird zweimal täglich ausgeführt, erneuert aber die Zertifikate nicht, es sei denn, sie laufen bald ab.

Lesen Sie auch:

  • WordPress auf Docker LEMP Stack mit Letsencrypt SSL installieren

Let’s Encrypt hat die Art und Weise, wie wir SSL-Zertifikate generieren, installieren und verwenden, buchstäblich verändert. Mit seinen automatisierten Verfahren mit dem Certbot-Tool können Sie sehen, wie einfach Sie Ihre kostenlosen SSL-Zertifikate in nur wenigen Sekunden von Let’s Encrypt erhalten und in wenigen Minuten automatisch installieren können. Ich hoffe, dieser Artikel ist informativ und nützlich für Sie. Bitte posten Sie Ihre wertvollen Kommentare und Vorschläge dazu.


Ubuntu
  1. So installieren Sie Nextcloud mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  2. So installieren Sie Magento 2 mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  3. So verwalten Sie SSL/TLS-Zertifikate von Lets Encrypt mit certbot

  4. So installieren Sie X-Cart mit Nginx und Lets Encrypt SSL unter Ubuntu 18.04 LTS

  5. So installieren Sie Drupal mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie das Let’s Encrypt-Zertifikat mit Certbot in Ubuntu 20.04

So installieren Sie Let’s Encrypt (Certbot) unter CentOS 8

So installieren Sie einen SSL-Certbot von Let’s Encrypt für Apache und Ubuntu 20.04

So installieren Sie Nginx mit Let’s Encrypt TLS/SSL unter Ubuntu 20.04

So installieren Sie Let’s Encrypt SSL auf Ubuntu mit Apache

So installieren Sie Let’s Encrypt SSL mit Nginx unter Ubuntu 16.04 LTS