ACME Let's Encrypt und DNS bei Selfhost

TFrenz

Member
May 13, 2020
100
8
23
59
Hallo, will gerade den Server mit Zertifikat von Let's Encrypt einrichten.
Aber bei den ACME Challenges wird mein Provider Selfhost nicht angeboten.
Die Nachfrage beim Provider zeigt aber das API unterstützt wird.

Auf meine Anfrage beim Support habe ich folgendes zurück bekommen:
Code:
Guten Tag,

Guten Tag,ja solch eine API haben wir, Sie müssen vorher nur einen TXT-Record anlegen.
Danach sehen Sie in den Details (Klick auf Ändern) direkt die ID

curl -X POST -F 'username=%USERNAME%' -F 'password=%PASSWORD%' -F 'rid=%RECORDID%' -F 'content=%CONTENT%' https://selfhost.de/cgi-bin/api.pl
oder
https://selfhost.de/cgi-bin/api.pl?username=%USERNAME%&password=%PASSWORD%&rid=%RECORDID&content=%CONTENT%

Dies sind die POST & GET Möglichkeit, den Inhalt dieses TXT-Records dann zu ändern.

Let's Encrypt schreibt hier die Subdomain "_acme-challenge", hier bei uns als Subdomainnamen-Feld

Content können Sie füllen mit was auch immer, denn dieser wird ja durch die API dann korrekt ausgefüllt.

Aber bei der ACME Challenges welchen Provider und welchen String muss ich hier wie hinterlegen?

Danke Thomas
 
Last edited:
Hallo Aaron, das habe ich auch gesehen, das Selfhost hier nicht gelistet wird.
Port 80 kann hier nicht freigegeben werden, da hier noch ein anderer Webserver läuft.

Gibt es hier keinen anderen DNS Challenger den man verwenden kann?
 
sh. "DNS Validation through CNAME Alias" in unserer Zertifikatsdoku - damit kannst du einen beliebigen anderen unterstuetzten DNS server + API fuer die ACME Validierung verwenden.
 
Hallo, in der Zertifikatsdoku finde ich nur was für PVE nicht für "Mail Gateway".
 
Nein, da gibt es kein /etc/pve/priv/acme/plugins.cfg Datei.
Habe zwar das Verzeichnis /etc/pmg/acme gefunden, aber keine Datei plugins.cfg
 
vielleicht ist deine PMG installation nicht aktuell genug? die ACME GUI/API integration ist noch recht frisch..
 
Ich würde mal annehmen, dass '/etc/pmg/acme/plugins.cfg' erst angelegt wird, wenn ein plugin (via GUI) konfiguriert wird ...
 
Hallo,

im Moment ist es noch nicht offizell von Proxmox unterstüzt, aber man könnte es von Hand implementieren.

dns_selfhost.sh Hinzufügen:
Bash:
cd /usr/share/proxmox-acme/dnsapi/
wget https://raw.githubusercontent.com/Marvo2011/acme.sh/dev/dnsapi/dns_selfhost.sh

Proxmox API Erweitern:
Bash:
nano /usr/share/proxmox-acme/dns-challenge-schema.json

JSON:
   "selfhost" : {
      "fields" : {
         "SELFHOSTDNS_USERNAME" : {
            "description" : "The selfhost username",
            "type" : "string"
         },
         "SELFHOSTDNS_PASSWORD" : {
            "description" : "The selfhost password",
            "type" : "string"
         },
         "SELFHOSTDNS_RID" : {
            "description" : "The selfhost RID for the first record.",
            "type" : "string"
         },
         "SELFHOSTDNS_RID2" : {
            "description" : "The selfhost RID for the second record.",
            "type" : "string"
         },
         "SELFHOSTDNS_MAP" : {
            "description" : "Optional Multi SAN: sub.domain.net:<RID> sub2.domain.net:<RID> sub3.domain.net:<RID>",
            "type" : "string"
         } 
      },
      "name" : "selfhost"
   },

PVE:
Bash:
systemctl restart pveproxy.service
systemctl restart pvedaemon.service

PMG:
Bash:
systemctl restart pmgproxy.service

Anschließend DNS Challenge Selfhost in der GUI unter Rechenzentrum > ACME konfigurieren bzw. Konfiguration -> Zertifikate -> ACME-Konten/-Challenges. (Nicht getestet, sollte aber funktionieren.) (ggf. ist ein Reboot des Hosts / PMG notwendig, bevor es in der GUI konfiguriert werden kann)

Edit: Version angepasst/aktualisiert und Hinweis hinzugefügt.
Edit: Sieht so aus als wäre die acme Version in Proxmox etwas zu alt.
Folgende Zeilen müssen Auskommentiert werden:
(Zeile 22 - 25)
Code:
  #_getdeployconf SELFHOSTDNS_MAP
  #_getdeployconf SELFHOSTDNS_RID
  #_getdeployconf SELFHOSTDNS_RID2
  #_getdeployconf SELFHOSTDNS_LAST_SLOT

(Zeile 76-79)
Code:
  #_savedeployconf SELFHOSTDNS_MAP "$SELFHOSTDNS_MAP"
  #_savedeployconf SELFHOSTDNS_RID "$SELFHOSTDNS_RID"
  #_savedeployconf SELFHOSTDNS_RID2 "$SELFHOSTDNS_RID2"
  #_savedeployconf SELFHOSTDNS_LAST_SLOT "$SELFHOSTDNS_LAST_SLOT"
 
Last edited:
Hallo der Befehl zum restart bring Fehler
Failed to restart pveproxy.service: Unit pveproxy.service not found.
 
Hallo der Befehl zum restart bring Fehler
Failed to restart pveproxy.service: Unit pveproxy.service not found.
Sorry hatte übersehen das es sich um PMG handelt.
Der Befehl zum Service restart lautet hier:

Bash:
systemctl restart pmgproxy.service

Edit: Einrichtung hier über Konfiguration -> Zertifikate -> ACME-Konten/-Challenges
 
Last edited:
Hallo hat nun funktioniert.

Nur beim Anlegen einer Challenge kommt fehlermeldung, hier ist selfhost nicht aufgelistet.
1644841066663.png
 
Hallo MarvinE, es gibt doch noch probleme.
Gibt es hier noch ein ausführerliches LOG?
Habe DNS Challenge eingerichtet, aber beim Erzeugen des Zertifikates kommt:
2022-02-14 14_10_56-mta - Proxmox Mail Gateway.png
Folgende selfHost DNS Challenge Einstellungen:
1644844458855.png
 
Hallo MarvinE, es gibt doch noch probleme.
Gibt es hier noch ein ausführerliches LOG?
Habe DNS Challenge eingerichtet, aber beim Erzeugen des Zertifikates kommt:
View attachment 34245
Folgende selfHost DNS Challenge Einstellungen:
View attachment 34248
Bitte fülle auch RID2 (zweiten identischen TXT Records erstellen und dessen ID nehmen), ACMEv2 API muss mindestens 2 Keys setzten können. Bitte poste auch einmal die konfigurierten TXT recoded von selfhost
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!