In diesem Tutorial erklären wir, wie man ein kostenloses SSL-Zertifikat von Let’s Encrypt auf einem CentOS 8 VPS mit Nginx als Webserver installiert.
Let’s Encrypt ist eine kostenlose, quelloffene und gemeinnützige Zertifizierungsstelle, die kostenlose SSL-Zertifikate für Websites bereitstellt, um die TLS-Verschlüsselung zu ermöglichen. Es wurde von der Internet Security Research Group (ISRG) entwickelt und wird von allen gängigen Browsern als vertrauenswürdig eingestuft. Es wird verwendet, um den Prozess der Zertifikatserstellung, -validierung, -signierung, -implementierung und -erneuerung von Zertifikaten für sichere Websites zu automatisieren.
Das Hauptziel von Let’s Encrypt ist es, die Verwendung von SSL im gesamten Internet zu fördern und verschlüsselte Verbindungen im gesamten Internet herzustellen, um die Sicherheit aller zu gewährleisten. Das Zertifikat ist nur 90 Tage gültig, daher müssen Sie es manuell erneuern oder das automatische Verlängerungssystem einrichten, das standardmäßig aktiviert sein sollte.
Derzeit unterstützt Let’s encrypt die automatisierte Zertifizierungsausstellung für Apache, Nginx, Plex und HAproxy, was fast jeden Anwendungsfall abdecken sollte. Beginnen wir mit unserer Installationsanleitung.
Voraussetzungen
- Zum Zweck dieses Tutorials verwenden wir einen CentOS 8 VPS.
- Voller SSH-Root-Zugriff oder ein Benutzer mit sudo-Berechtigungen ist ebenfalls erforderlich. Alle unsere VPS verfügen standardmäßig über Root-Zugriff ohne zusätzliche Kosten.
- Ein gültiger Domainname wird auf Ihre VPS-IP-Adresse verwiesen.
Schritt 1:Anmelden und Pakete aktualisieren
Zuerst müssen wir uns mit SSH bei unserem Server anmelden. Sie können dies tun, indem Sie diesen Befehl eingeben:
ssh root@IP_Address -p Port_Number
Denken Sie daran, „root“ durch Ihren Benutzernamen zu ersetzen, wenn Sie nicht den Root-Benutzer verwenden. Ändern Sie „IP_Address“ und „Port_Number“ entsprechend der IP-Adresse Ihres Servers und der SSH-Portnummer. Die Standard-SSH-Portnummer ist 22.
Sobald Sie angemeldet sind, sollten Sie alle Ihre Pakete auf die neuesten verfügbaren Versionen aktualisieren.
dnf update -y
Sobald die Aktualisierungen abgeschlossen sind, starten Sie Ihr System neu, um die Änderungen zu übernehmen.
Schritt 2:Nginx und PHP installieren
Installieren Sie zuerst den Nginx-Webserver und PHP, indem Sie den folgenden Befehl ausführen:
dnf install nginx php php-fpm php-cli -y
Sobald alle Pakete installiert sind, starten Sie die Nginx- und PHP-FPM-Dienste und ermöglichen Sie ihnen, beim Booten mit dem folgenden Befehl zu starten:
systemctl start nginx systemctl enable nginx systemctl start php-fpm systemctl enable php-fpm
Schritt 3:PHP-FPM konfigurieren
Standardmäßig ist PHP-FPM so konfiguriert, dass es als Apache-Benutzer und -Gruppe ausgeführt wird. In diesem Tutorial verwenden wir den Nginx-Webserver. Das bedeutet, dass Sie PHP-FPM so konfigurieren müssen, dass es als Nginx-Benutzer und -Gruppe ausgeführt wird.
Bearbeiten Sie dazu die PHP-FPM-Konfigurationsdatei:
nano /etc/php-fpm.d/www.conf
Ändern Sie den Benutzer- und Gruppenwert von apache
zu nginx
, wie unten gezeigt:
user = nginx group = nginx
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart php-fpm
Schritt 4:Erstellen Sie einen virtuellen Nginx-Host
Bevor Sie beginnen, erstellen Sie eine Beispiel-Website für Nginx.
mkdir /var/www/html/yourdomain.com
Erstellen Sie als Nächstes eine Beispiel-PHP-Datei im Website-Verzeichnis und öffnen Sie sie mit Ihrem bevorzugten Texteditor:
nano /var/www/html/yourdomain.com/index.php
Fügen Sie der Datei die folgenden Zeilen hinzu:
<?php phpinfo(); ?>
Speichern und schließen Sie die Datei und legen Sie dann den Besitz Ihrer Website auf nginx
fest mit folgendem Befehl:
chown -R nginx:nginx /var/www/html/yourdomain.com/
Erstellen Sie als Nächstes eine neue Konfigurationsdatei für den virtuellen Nginx-Host, die Ihrer Website dient:
nano /etc/nginx/conf.d/yourdomain.com.conf
Fügen Sie die folgenden Zeilen hinzu:
server { server_name yourdomain.com; root /var/www/html/yourdomain.com; location / { index index.php; } access_log /var/log/nginx/yourdomain.access.log; error_log /var/log/nginx/yourdomain.error.log; location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } }
Stellen Sie sicher, dass Sie alle Instanzen von yourdomain
ersetzen mit Ihrem registrierten Domainnamen.
Speichern und schließen Sie die Datei und überprüfen Sie dann die Nginx-Konfigurationsdatei mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe sehen:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie als Nächstes den Nginx-Dienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart nginx
Ihr Webserver sollte jetzt betriebsbereit sein.
Schritt 5:Installieren Sie den Certbot-Client
Um ein Let’s Encrypt-Zertifikat für Ihre Website zu generieren, müssen Sie den Certbot-Client auf Ihrem System installieren.
Der Certbot ist ein Befehlszeilentool, das verwendet wird, um den Prozess zum Erhalten und Erneuern von SSL-Zertifikaten von Let’s Encrypt für Ihre Website zu vereinfachen.
Standardmäßig ist das Certbot-Paket nicht im CentOS-Standard-Repository verfügbar. Sie müssen es also von der Website des Anbieters herunterladen.
Sie können es mit dem folgenden Befehl herunterladen und installieren:
wget https://dl.eff.org/certbot-auto mv certbot-auto /usr/local/bin/certbot-auto chmod 0755 /usr/local/bin/certbot-auto
Führen Sie nach der Installation von Certbot den folgenden Befehl aus, um ein SSL-Zertifikat für Ihre Website zu erhalten und zu installieren:
certbot-auto --nginx -d yourdomain.com
Der obige Befehl installiert zunächst alle erforderlichen Abhängigkeiten auf Ihrem Server. Nach der Installation werden Sie aufgefordert, eine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren, wie unten gezeigt:
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-v02.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 our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
Geben Sie N ein, wenn Sie Ihre E-Mail nicht an die EFF weitergeben möchten, und drücken Sie dann die Eingabetaste, um fortzufahren. Nachdem das Zertifikat installiert wurde, sollten Sie die folgende Ausgabe sehen:
Obtaining a new certificate Performing the following challenges: http-01 challenge for yourdomain.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourdomain.com.conf Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourdomain.com.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://yourdomain.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=yourdomain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/yourdomain.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/yourdomain.com/privkey.pem Your cert will expire on 2020-08-30. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto 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 - We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org.
Jetzt ist Ihre Website mit Let’s Encrypt SSL gesichert. Sie können Ihr SSL-Zertifikat mit einem Online-Tool testen.
Schritt 6:Greifen Sie auf Ihre Website zu
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL https://yourdomain.com
sicher auf Ihre Website zu .
Sie sollten die folgende Seite sehen:
Auf der obigen Seite sollten Sie sehen können, dass die Website ordnungsgemäß gesichert ist, normalerweise mit einem grünen Schlosssymbol am linken Rand der Adressleiste.
Schritt 7:Automatische Verlängerung einrichten
Nachdem wir Let’s Encrypt auf unserem CentOS 8 VPS installiert haben, müssen wir sicherstellen, dass unser Zertifikat erneuert und gültig bleibt.
Standardmäßig sind Let’s Encrypt Zertifikate 90 Tage gültig. Es wird empfohlen, das Zertifikat vor Ablauf zu erneuern, da Benutzer bei einem abgelaufenen Zertifikat eine Sicherheitswarnung erhalten, wenn sie versuchen, Ihre Website zu besuchen.
Sie können den Erneuerungsprozess manuell mit dem folgenden Befehl testen.
certbot-auto renew --dry-run
Der obige Befehl überprüft automatisch die derzeit installierten Zertifikate und versucht, sie zu erneuern, wenn sie weniger als 30 Tage vor dem Ablaufdatum liegen.
Sie können auch einen Cronjob hinzufügen, um den obigen Befehl automatisch zweimal täglich auszuführen.
Bearbeiten Sie dazu die Crontab-Datei mit dem folgenden Befehl:
crontab -e
Fügen Sie die folgende Zeile hinzu:
* */12 * * * root /usr/local/bin/certbot-auto renew >/dev/null 2>&1
Sie können das Intervall dieses Cronjobs jederzeit ändern, wenn zweimal am Tag zu oft ist, indem Sie die Werte ganz links anpassen.
Speichern und schließen Sie die Datei. Jetzt wird Ihr Zertifikat regelmäßig erneuert. Herzliche Glückwünsche! Sie haben jetzt Let’s Encrypt auf Ihrem CentOS 8-Server mit Nginx installiert.
Das Einrichten einer Website mit allen Plugins und Funktionen, die Sie benötigen, kann viel Zeit und Mühe in Anspruch nehmen, die Sie möglicherweise für die Führung Ihres Unternehmens aufwenden. Wenn Sie einen unserer verwalteten CentOS 8-Hostingdienste nutzen, erledigen wir die ganze Routinearbeit für Sie. Von der Serverwartung bis hin zu Installations- und Konfigurationsanfragen decken wir alles ab, was Sie brauchen, um Ihren Server in Topform zu halten, und das alles ohne zusätzliche Kosten.
Wenn dieses Tutorial Ihnen geholfen hat, Ihre Nginx-Website mit SSL auf Ihrem CentOS 8 VPS zu konfigurieren, hinterlassen Sie bitte einen Kommentar in unserem Kommentarbereich oder teilen Sie diesen Beitrag in sozialen Medien, indem Sie unsere Freigabe-Shortcuts verwenden. Danke.