Proxmox absichern mit Lets Encrypt SSL Zertifikat

Die Weboberfläche von Proxmox 4 (und 5) lässt sich in nur wenigen Schritten mit einem gültigem kostenlosen Lets Encrypt SSL Zertifikat absichern.

Vorraussetzung ist ein vom Internet erreichbarer Port 80 eueres Webservers sowie ein installiertes git. Letzteres kann per „**apt-get install git**“ einfach nachinstalliert werden.

Ist das erledigt wechseln wir in das root Verzeichnis

cd /root/

und clonen das acme Repository

git clone https://github.com/Neilpang/acme.sh.git acme-master

nun erstellen wir das Verzeichnis in dem die Konfiguration abgelegt wird und wechseln in das gerade geclonte Verzeichnis

mkdir /etc/pve/.le
cd /root/acme-master

Mit folgendem Befehl legen wir unsere Konfiguration an. Hierbei müssen wir unsere E-Mail Adresse angeben über die wir zukünftig benachrichtigt werden wenn das Zertifikat abläuft

./acme.sh --install --accountconf /etc/pve/.le/account.conf --accountkey /etc/pve/.le/account.key --accountemail "meine@email.com"

Nun können wir testweise versuchen das Zertifikat zu beantragen. Da es ein wöchentliches Limit gibt wie häufig ein Zertifikat beantragt werden darf, empiehlt es sich zuerst nur einen Testantrag zu machen. Hier muss die von dir verwendete Domain eingesetzt werden:

./acme.sh --issue --standalone --keypath /etc/pve/local/pveproxy-ssl.key --fullchainpath /etc/pve/local/pveproxy-ssl.pem --reloadcmd "systemctl restart pveproxy" -d $DOMAIN --test

Sollte das funktioniert haben können wir den gleichen Befehl nochmal abschicken, diesmal aber statt mit dem –test Flag mit einem –force Flag. So wird sichergestellt dass das gerade testweise Zertifikat durch das neue richtige Zertifikat ersetzt wird, obowhl es noch nicht abgelaufen ist:

./acme.sh --issue --standalone --keypath /etc/pve/local/pveproxy-ssl.key --fullchainpath /etc/pve/local/pveproxy-ssl.pem --reloadcmd "systemctl restart pveproxy" -d $DOMAIN --force

Das war es auch schon. Die Weboberfläche von Proxmox ist nun mit einem gültigem Zertifikat abgesichert. Außerdem wurde ein Cronjob angelegt der das Zertifikat zukünftig automatisch erneuert:

0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

7 Kommentare

  1. Vielen Dank für die tolle Beschreibung.

    Leider scheitere ich bei dieser Fehlermeldung:

    git clone https://github.com/Neilpang/acme.sh.git acme.sh-master
    Cloning into ‚acme.sh-master’…
    fatal: unable to access

    Ich vermute, dass mein Proxmox-Server keinen Zugriff hat. Es scheint aber keine hinderlichen Firewall-Regeln zu geben:

    iptables -L
    Chain INPUT (policy ACCEPT)
    target prot opt source destination

    Chain FORWARD (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

    Was muss ich denn bei Proxmox einstellen, um den Zugriff zu erlauben?

    Vielen Dank!

    Tony

    • Hallo Tony,

      der richtige Befehl zum clonen ist:

      git clone https://github.com/Neilpang/acme.sh.git acme-master

      Ich hatte das im Artikel falsch erkäutert. Danke für die Info, ist nun angepasst.

  2. Sorry – für die vermutlich dummen Fragen. Mich verwirrt die Proxmox-Netzwerk-Konfiguration.

    ping http://www.google.de und auch apt-get funktioniert. Trotzdem erhalt ich :

    root@virtualhost:~# route -n
    -bash: route: command not found
    root@virtualhost:~# ifconfig
    -bash: ifconfig: command not found

  3. Hallo. Die Befehle „ifconfig“ und „route“ sind auf einem Proxmox-Host (die Basis ist Debian Stretch) nicht per Voreinstellung vorhanden

    Die können nachinstalliert werden durch:
    apt-get install net-utils

    Ansonsten bitte den Befehl „ip“ nutzen:
    ip a # listet alle lokal vergebene IP-Adressen auf
    ip r # listet alle routen auf

    ip –help # Zeigt eine Hilfe an
    man ip # Zeigt die ausführliche Hilfe an bzw. die „Bedienungsanleitung

    Bsp:
    ip addr add 192.168.1.1/24 dev eth0
    (Setzt auf der Netzwerkkarte „eth0“ die IP-Adresse „192.168.1.1“ mit der Subnetzmaske „255.255.255.0“)

    Grüße
    Stephan

    • Ein SSL Zertifikat wird immer für eine Domain ausgestellt. In dem Fall würde ich selbst ein Zertifikat auf eine beliebige Domain ausstellen und konfigurieren. Dann bekommst du zwar eine Warnung vom Browser das Zertifikat sei ungültig, verschlüsselt wird die Verbindung jedoch dennoch.

      • Das Problem ist für mich das ich Proxmox von aussen nicht erreichen möchte und wenn ich mein Prxmox app nutze. sagt er kein kültiges Zertifikat. das möchte ich umgehen aber nicht von aussen.

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*