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

Sichern von ISPConfig 3.1 mit einem kostenlosen SSL-Zertifikat von Lets Encrypt

WICHTIG :Diese Anleitung ist nicht kompatibel mit ISPConfig 3.2 und neuer, da ISPConfig 3.2 und neuere Versionen Let's encrypt für alle Dienste eingebaut haben. Das SSL-Zertifikat von Let's encrypt wird während der Installation automatisch konfiguriert, sodass Let's encrypt für keinen Dienst mehr manuell konfiguriert werden muss.

Autor: ahrasis

Dieses Tutorial zeigt, wie Sie ein kostenloses SSL-Zertifikat von Let's encrypt für die ISPconfig-Schnittstelle (Port 8080), das E-Mail-System (Postfix und Dovecot/Courier), den FTP-Server (pure-ftpd) und Monit erstellen und konfigurieren. Die Befehle in diesem Tutorial wurden auf Ubuntu 16.04 getestet, sie sollten auch für Debian funktionieren. Möglicherweise sind bestimmte Änderungen erforderlich, damit es unter CentOS funktioniert.

Hilfe zu diesem Handbuch finden Sie in diesem Forumsthread.

Erstellen einer Website mit dem ISPConfig-Server-Hostnamen-FQDN

Erstellen Sie eine Site für Ihren Server im ISPConfig-Bedienfeld über Sites> Website> Neue Website hinzufügen . Erinnern! Dies ist Ihre Server-Website und als solche muss sie den vollqualifizierten Domänennamen (FQDN) Ihres Servers enthalten. Ich werde es in diesem Handbuch als `hostname -f` bezeichnen.

hostname -f

Hoffentlich funktioniert es auch ohne Änderungen an Ihrem Server.

Zugriff auf die ISPConfig-Website online

Überprüfen Sie, ob Ihre Server-Site bereit und online zugänglich ist, da Let's Encrypt überprüfen muss, ob Ihre Website zugänglich ist, bevor SSL-Schlüssel, Zertifikate und Kettendateien für Ihre Server-Site ausgegeben werden. Sie müssen auch seine DNS-Zone erstellen und ihr die ordnungsgemäße Verbreitung ermöglichen, da Let's Encrypt sie ebenfalls verifizieren muss.

Aktivieren von SSL für ISPConfig 3 Control Panel (Port 8080)

Wenn Sie SSL während der ISPConfig-Einrichtung nicht aktiviert haben, z. B. für das Kontrollfeld an Port 8080, aktivieren Sie es, indem Sie ispconfig_update.sh in das Terminal eingeben und Ja für SSL auswählen. Wir brauchen dies nicht, um ein richtiger Schlüssel zu sein, noch wollen wir ihn behalten, aber wir wollen schneller arbeiten, also können wir einfach für alle seine Felder eingeben. Wenn Sie damit fertig sind, sollte das selbstsignierte SSL bereits für Ihre ISPConfig aktiviert sein.

Überprüfen von SSL für ISPConfig 3 Control Panel (Port 8080)

Überprüfen Sie Ihren Browser, um dies zu bestätigen, indem Sie das ISPConfig-Kontrollfeld an Port 8080 öffnen. Beachten Sie, dass Sie zu diesem Zeitpunkt möglicherweise eine Warnung erhalten, da die erstellten SSL-Dateien selbstsigniert sind, aber der Browser bestätigt, dass Ihr ISPConfig SSL aktiviert hat oder nicht.

ISPConfig-Website mit Let's Encrypt SSL sichern

Wenn dies erledigt ist, gehen Sie zurück zu ISPConfig-Panel> Sites> Website> Website-Name , und klicken Sie dann auf SSL und Let's Encrypt Aktivieren Sie die Schaltflächen und speichern Sie - um SSL-Dateien von Let's Encrypt zu erstellen und für Ihre Server-Site zu aktivieren. Wenn dies erfolgreich ist, verwendet Ihre Server-Site nun diese Let's Encrypt SSL-Dateien, aber nicht Ihre ISPConfig 8080-Seite. Wenn dies nicht gelingt, können Sie nicht weiter fortfahren. Überprüfen Sie daher die Protokolldatei auf Hinweise.

ISPConfig 3 Control Panel ändern (Port 8080)

Wenn LE SSL bereits funktioniert, gehen Sie zu Ihrem Server-Terminal, gehen Sie über sudo su auf root und verwenden Sie den folgenden Befehl, um die erstellten selbstsignierten SSL-Dateien zu sichern und durch SSL-Dateien von Let's Encrypt zu ersetzen.

cd /usr/local/ispconfig/interface/ssl/
mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak
mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt
ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem
  • Wenn Sie ispserver.pem noch nicht erstellt haben, können Sie die dritte Zeile ignorieren, die darauf abzielt, die vorhandene, falls vorhanden, als Backup umzubenennen.
  • Beachten Sie, dass wir den Live-Ordner von Let's Encrypt anstelle des Archivordners verwenden.
  • Beachten Sie auch die letzte Zeile, in der ispserver.pem durch das Kombinieren von Dateien erstellt wird. Daher wird sie von Let's Encrypt nicht automatisch erneuert, im Gegensatz zu anderen Dateien, die wir lediglich symbolisch verknüpft haben. Daher werden wir uns im letzten Teil von damit befassen diese Anleitung.
  • Beachten Sie auch, dass Sie entweder `hostname -f` oder server1.example.com eingeben, da das Ergebnis dasselbe ist, da `hostname -f`server1.example.com ist.

Verwendung der gleichen SSL-Zertifikate von Let's Encrypt für andere wichtige Dienste

Als zusätzliche Tipps, basierend auf Securing Your ISPConfig 3 Installation, möchten Sie vielleicht einen Symlink zu ispserver.key oder .crt oder .pem verwenden, anstatt Ihre Postfix-, Dovecot-, Courier-, Pure-FTPd- und Monit-Dateien direkt auf Let's Encrypt SSL-Dateien zu verweisen. Wenn Dovecot bereits Postfix-SSL-Dateien verwendet, können Sie es sicher ignorieren. Im Detail müssen Sie nur Folgendes tun:

a. Für Postfix

cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key
service postfix restart
service dovecot restart


b. Für Taubenschlag:(* Beachten Sie, dass dies nicht zusammen mit Kurier existieren sollte)

Überprüfen Sie, ob dieser Code existiert, indem Sie nano /etc/dovecot/dovecot.conf

verwenden
[...]
ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key
[...]

Lassen Sie sie so, wie sie sind, falls sie vorhanden sind. Andernfalls reparieren Sie sie. In jedem Fall wird der Dovecot-Neustart des Diensts bereits oben behandelt.

c. Für Kurier:(* Beachten Sie, dass dies nicht zusammen mit Taubenschlag existieren sollte)

cd /etc/courier/
mv imapd.pem imapd.pem-$(date +"%y%m%d%H%M%S").bak
mv pop3d.pem pop3d.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem imapd.pem
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pop3d.pem
service courier-imap-ssl stop
service courier-imap-ssl start
service courier-pop-ssl stop
service courier-pop-ssl start

d. Für reines FTPd:

cd /etc/ssl/private/
mv pure-ftpd.pem pure-ftpd.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem
chmod 600 pure-ftpd.pem
service pure-ftpd-mysql Neustart

e. Für Monit:(Wenn Sie es auf Ihrem Server installiert haben)

nano /etc/monit/monitrc

Fügen Sie den obigen symbolischen Link zu ispserver.pem, das wir für pure-ftpd erstellt haben, auch hier hinzu:

[...]
set httpd port 2812 and
SSL ENABLE
PEMFILE /etc/ssl/private/pure-ftpd.pem
allow admin:'secretpassword'
[...]

Und starten Sie monit neu:

service monit restart


Erstellen Sie ein Skript zur automatischen Verlängerung für Ihre ISPConfig-Pem-Datei (ispserver.pem)

In diesem letzten Schritt, den ich bisher in keiner Anleitung gefunden habe, ist das automatische Update von ispserver.pem wie zuvor angedeutet. Derzeit muss es manuell geändert werden, direkt nachdem Let's Encrypt Ihre Server-SSL-Dateien automatisch erneuert hat. Um dies nicht zu übersehen, sollten Sie Incron wie im entsprechenden Incron-Tutorial vorgeschlagen installieren und ein Skript erstellen, um Ihre ispserver.pem-Datei wie folgt automatisch zu aktualisieren:

Installieren Sie über den Terminalbefehl incron, erstellen Sie dann die Skriptdatei und bearbeiten Sie sie mit nano:

apt install -y incron
nano /etc/init.d/le_ispc_pem.sh

Fügen Sie dies in le_ispc_pem.sh hinzu:

#!/bin/sh
### BEGIN INIT INFO
# Provides: LE ISPSERVER.PEM AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE ISPSERVER.PEM AUTO UPDATER
# Description: Update ispserver.pem automatically after ISPC LE SSL certs are renewed.
### END INIT INFO
cd /usr/local/ispconfig/interface/ssl/
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
service pure-ftpd-mysql restart
service monit restart
service postfix restart
service dovecot restart
service nginx restart
  • Beachten Sie, dass einige Leute Monit nicht installieren, damit sie es sicher entfernen können. Passen Sie das obige Skript entsprechend an.
  • Für Multi-Server-Setup siehe Post #203 und fügen Sie den gegebenen scp-Code hier ein, um zukünftige Updates zu automatisieren.

Wir machen es dann ausführbar, fügen root als erlaubten Benutzer für incrontab hinzu und bearbeiten dann die incrontab-Datei:

chmod +x /etc/init.d/le_ispc_pem.sh
echo "root" >> /etc/incron.allow
incrontab -e


Fügen Sie diese Zeile darin incrontab hinzu:

/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.sh

Neustart Ihrer Dienste

Ich denke, das war es für die Sicherung Ihres Servers mit Let's Encrypt. Möglicherweise möchten Sie Ihren Webserver danach neu starten.

service nginx restart

Denken Sie daran:Wenn Sie Apache verwenden, ändern Sie nginx entsprechend in Apache2.

LE4ISPC

Alternativ können Sie das für diesen Zweck erstellte LE4ISPC-Skript verwenden, das sowohl nginx als auch Apache2 von ISPConfig bis zu pure-ftpd oben mit Ausnahme von monit unterstützt. Bevor Sie es verwenden, sollten Sie die obigen Schritte (1–5) bereits abgeschlossen haben und Folgendes haben:

1. Die Website für Ihren Server über ISPConfig erstellt;
2. Die online zugängliche Website;
3. ISPConfig SSL aktiviert (über Installation oder Update);
4. LE SSL erfolgreich für die Website aktiviert.


Ubuntu
  1. Kostenloses SSL für Nginx auf Centos von Let’s encrypt

  2. So sichern Sie ein cPanel-fähiges Konto mit einem SSL-Zertifikat von Lets Encrypt

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

  4. Let’s Encrypt:Holen Sie sich ein kostenloses SSL-Zertifikat mit Certbot

  5. So erhalten Sie ein kostenloses SSL-Zertifikat mit SSL It! und Let’s Encrypt auf Plesk

So installieren Sie SuiteCRM mit Apache und kostenlosem Lets Encrypt SSL unter Debian 11

So installieren Sie InvoicePlane mit Apache und dem kostenlosen Lets Encrypt SSL-Zertifikat unter Debian 11

Sichern Sie Ihren von ISPConfig 3 verwalteten Mailserver mit einem gültigen Lets Encrypt SSL-Zertifikat

Sichern Sie Ihre ISPConfig 3-Installation mit einem kostenlosen SSL-Zertifikat der Klasse 1 von StartSSL

So installieren Sie Gitea mit Nginx und kostenlosem Lets Encrypt SSL unter Ubuntu 20.04

Installieren und konfigurieren Sie Webmin mit dem kostenlosen Let’s Encrypt SSL-Zertifikat auf Debian 10