ISPConfig 3.1 mit einem kostenlosen Let’s Encrypt SSL-Zertifikat sichern
Autor: ahrasis
Dieses Tutorial zeigt, wie Sie ein kostenloses Let’s encrypt SSL-Zertifikat 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 unter Ubuntu 16.04 getestet, sie sollten auch für Debian funktionieren. Bestimmte Änderungen können notwendig sein, damit es auf CentOS funktioniert.
Hilfe zu diesem Leitfaden finden Sie in diesem Forum-Thread.
Erstellen einer Website mit ISPConfig Server Hostname FQDN
Erstellen Sie eine Website für Ihren Server im ISPConfig-Panel über Seiten > Website > Neue Website hinzufügen. Denkt daran! Dies ist Ihre Server-Website und als solche muss sie Ihren voll qualifizierten Domänennamen (FQDN) 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 Sie SSL-Schlüssel, Zertifikat und Kettendatei für Ihre Server-Site ausstellen. Sie müssen auch seine DNS-Zone erstellen und ihr erlauben, sich ordnungsgemäß zu verbreiten, da Let’s Encrypt sie auch überprüfen muss.
SSL für ISPConfig 3 Systemsteuerung aktivieren (Port 8080)
Wenn Sie SSL während der Einrichtung von ISPConfig nicht aktiviert haben, z.B. für das Control Panel am Port 8080, aktivieren Sie es, indem Sie ispconfig_update.sh in das Terminal eingeben und Ja für SSL auswählen. Wir brauchen diesen Schlüssel nicht, noch wollen wir ihn behalten, aber wir wollen schneller arbeiten, so dass wir einfach für alle seine Felder eingeben können. Wenn Sie dies abgeschlossen haben, sollte das selbstsignierte SSL für Ihre ISPConfig bereits aktiviert sein.
SSL für ISPConfig 3 Systemsteuerung prüfen (Port 8080)
Überprüfen Sie Ihren Browser, indem Sie das ISPConfig Control Panel am Port 8080 öffnen. Beachten Sie, dass Sie in diesem Stadium möglicherweise eine Warnung erhalten, da die erstellten SSL-Dateien selbst signiert sind, aber der Browser wird bestätigen, dass Ihr ISPConfig SSL aktiviert ist oder nicht.
ISPConfig Website mit Let’s Encrypt SSL sichern
Wenn dies der Fall ist, gehen Sie zurück zu ISPConfig-Panel > Standorte > Website > Website > Website-NameKlicken Sie dann auf die Check-Buttons SSL und Let’s Encrypt und speichern Sie -, um Let’s Encrypt SSL-Dateien zu erstellen und sie für Ihre Serverseite zu aktivieren. Wenn Ihre Serverseite erfolgreich ist, soll sie nun diese Let’s Encrypt SSL-Dateien verwenden, aber nicht Ihre ISPConfig 8080-Seite. Wenn dies nicht erfolgreich ist, können Sie nicht weitermachen, also überprüfen Sie die Protokolldatei auf einen Hinweis.
Änderung der ISPConfig 3 Systemsteuerung (Port 8080)
Wenn LE SSL bereits funktioniert, dann gehen Sie zu Ihrem Serverterminal, gehen Sie mit root über sudo su und verwenden Sie den folgenden Befehl, um die erstellten selbstsignierten SSL-Dateien zu sichern und durch Let’s Encrypt SSL-Dateien 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 bestehende, falls vorhanden, als Backup umzubenennen.
- Hinweis, dass wir Let’s Encrypt Live-Ordner anstelle des Archivordners verwenden.
- Beachten Sie auch die letzte Zeile, in der ispserver.pem durch die Kombination von Dateien erstellt wird, also wird es von Let’s Encrypt nicht automatisch erneuert, im Gegensatz zu anderen Dateien, die wir lediglich mit einem Link versehen haben, so dass wir uns im letzten Teil dieses Handbuchs damit befassen werden.
- Beachten Sie auch, dass Sie entweder `Hostname -f` oder server1.example.com eingeben, da das Ergebnis das gleiche ist, da `Hostname -f`server1.example.com ist.
Mit dem gleichen Verfahren verschlüsseln wir SSL-Zertifikate für andere wichtige Dienste.
Als zusätzliche Tipps, basierend auf der Sicherung Ihrer ISPConfig 3-Installation, können Sie den Symlink zu ispserver.key oder .crt oder.pem verwenden, anstatt direkt auf Ihren Postfix, Ihre Taubenschlag, Kurier, pure-FTPd und monit to Let’s Encrypt SSL-Dateien zu verweisen. Für Taubenschlag, wenn es bereits Postfix-SSL-Dateien verwendet, ist es sicher, dass Sie es ignorieren können. Im Detail müssen Sie nur die folgenden Schritte durchführen:
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 Dovecot: (* Beachten Sie, dass dies nicht zusammen mit dem Courier existieren sollte.)
Überprüfen Sie, ob dieser Code existiert, indem Sie nano /etc/dovecot/dovecot/dovecot.conf verwenden.
[...] ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key [...]
Lasst sie so, wie sie sind, wenn sie existieren. Andernfalls reparieren Sie sie. In jedem Fall ist der Neustart des Service-Dovecot bereits oben beschrieben.
c. Für den Courier: (* Beachten Sie, dass dies nicht zusammen mit Dovecot 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 pure-FTPd:
cd /etc/ssl/private/ mv pure-ftpd.pem pure-ftpd.pem.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 restart
e. Für Monit (Wenn Sie es auf Ihrem Server installiert haben)
nano /etc/monit/monitrc
Füge den obigen Symlink auch hierin zur ispserver.pem hinzu, die wir für pure-ftpd erstellt haben:
[...] set httpd port 2812 and SSL ENABLE PEMFILE /etc/ssl/private/pure-ftpd.pem allow admin:'secretpassword' [...]
Und starten Sie die Überwachung neu:
service monit restart
Automatisches Verlängerungsskript für Ihre ISPConfig Pem-Datei erstellen (ispserver.pem)
In diesem letzten Schritt, den ich bisher in keinem Leitfaden gefunden habe, ist das automatische Update von ispserver.pem, wie bereits angedeutet. Derzeit muss es manuell geändert werden, direkt nachdem Let’s Encrypt automatisch Ihre Server-SSL-Dateien erneuert hat. Um dies nicht zu übersehen, können Sie incron wie im jeweiligen incron-Tutorial vorgeschlagen installieren und ein Skript erstellen, das Ihre ispserver.pem-Datei wie folgt automatisch aktualisiert:
Installieren Sie per 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üge dies in die le_ispc_pem.sh ein:
#!/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, so dass sie es sicher entfernen können. Passen Sie das obige Skript entsprechend an.
- Für die Einrichtung von Multiservern lesen Sie bitte Post #203 und fügen Sie hier den angegebenen Scp-Code 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üge diese Zeile in die Inkrontabelle ein:
/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.sh
Neustart Ihrer Dienste
Ich denke, das ist 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 auch das zu diesem Zweck erstellte LE4ISPC-Skript verwenden, das sowohl nginx als auch apache2 von ISPConfig bis hin zu pure-ftpd oben mit Ausnahme von monit unterstützt. Bevor Sie es verwenden, sollten Sie die oben genannten Schritte (1-5) bereits durchgeführt haben und :
1. Erstellt die Website für Ihren Server über ISPConfig;
2. die Website online zugänglich;
3. ISPConfig SSL aktiviert (durch Installation oder Update);
4. LE SSL erfolgreich für die Website aktiviert.