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.

Das könnte dich auch interessieren …