OpnSense ACME Automations -> Proxmox VE

Moin Zusammen,

ich habe vor einiger Zeit dieses Problem schon mal im Discord gepostet und leider keine Reaktion auf das Thema erhalten. Vielleicht finde ich ja hier einen Hinweis :grin:

Nutzt hier vielleicht jemand die Automations von dem ACME Plugin?

Ich kann darüber automatisch die Zertifikate auf mein Synology NAS und meinem Vaultwarden verteilen, jedoch scheitert es bei Proxmox, wenn ich das eingebaute deployscript nutze…

Folgende Fehlermeldung taucht im System log von Acme auf: AcmeClient: running acme.sh deploy hook failed (acme_proxmoxve) > Nicht so sehr aussagekräftig

Mit Postman habe ich das ganze bereits einmal manuell nachgestellt - läuft ohne Probleme mit dem gleichen Proxmox API Token etc. wie ich in Opnsense verwende. Custom Cert Delete, Custom Cert Post und pveproxy restart - kein Problem.
Nur mit dem OpnSense Plugin läuft es halt nicht.

Vielleicht hat ja jemand eine idee.

warum stellst du das Cert nicht direkt über den Proxmox Server aus?

Weil ich die Domain mittlerweile für diverse Dienste im homelab verwende und ich die Zertifikate über DNS challenge so an einer zentralen Stelle verwalten kann und über die Funktion automatisch ausrollen kann. Bei anderen Diensten nutzen ich zum verteilen die Möglichkeit per sftp/ssh. Würde bei proxmox direkt die eingebaute Möglichkeit über die proxmox api nutzen, wenn sie den funktionieren würden. Vielleicht kann mir jemand bestätigen, dass diese Möglichkeit verbugt ist oder mir ein Tipp geben, was ich falsch machen könnte.
Wie beschrieben funktioniert es ja eigentlich über die api (zumindest mit Postman)

Hi Gandalf,

habe das gleiche Problem. Bei mir steht im Log noch folgender Fehler:

Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60

Steht das auch bei dir in der Nähe des Fehlers im LogFile?
Unter Fehlercode 60 steht untern den curl Errors:

CURLE_PEER_FAILED_VERIFICATION (60)

The remote server’s SSL certificate or SSH fingerprint was deemed not OK. This error code has been unified with CURLE_SSL_CACERT since 7.62.0. Its previous value was 51.

So wie ich das interpretiere, baut curl keine HTTPS Verbindung, weil das Zertifikat auf dem Proxmox nicht verifiziert werden kann. Bei mir ist das so, weil es „noch“ keine Let’s Encrypt Zertifikat ist, sondern das selbst signierte.

Das ist irgendwie doof, weil mindestens beim ersten Deployen ist das Zertifikat ja immer selbst signiert.
Hat jemand vielleicht eine Idee, wie das zu lösen ist?

VG,
Sniks6

Das Problem taucht auch auf mit einem richtigen Let’s encrypt Zertifikat. Dann gehe ich mal davon aus, dass das momentan verbugt ist.
Hab die gleiche Meldung…
Eigentlich kann man da ja auch nicht ganz so viel falsch eingeben und der api call funktioniert mit postman :smiley:

1 „Gefällt mir“

Danke für die Rückmeldung. Hab jetzt echt gedacht, dass es an meine selbst signierten Zertifikat liegt.

Scheint dann wohl tatsächlich ein Bug zu sein…

1 „Gefällt mir“

Moin … ich hab … und ja ich hatte … das selbe Problem und konnte es temporär lösen.
Der Bug ist bekannt und wurde bereits in Version 3.0.8 des acmesh-client behoben. (Link: https://github.com/acmesh-official/acme.sh/pull/4853/commits/00dbc3881fa377646115a237bb12193f13504973)

OPNsense verwendet in der jetzigen aktuellen Version allerdings immer noch v3.0.7

Behoben habe ich es, indem ich einfach die proxmoxve.sh des amcesh-clients unter OPNsense gefixt habe.

  1. Per Shell unter OPNsense die Datei proxmoxve.sh bearbeiten:
    vi /usr/local/share/examples/acme.sh/deploy/proxmoxve.sh

  2. Die Zeilen 102, 106 und 128 gemäß Commit (Link) anpassen. Die Zeilennummern könnt ihr euch in vi mit „:set nu“ (ohne Anüfhrungszeichen) anzeigen lassen.

  3. Speicher und beenden mit: „:x!“ (ohne Anüfhrungszeichen)

Damit hat es bei mir endlich problemlos geklappt.

[EDIT]
Wichtig ist vor allem Zeile 128, damit es funktioniert, die Zeilen 102 und 106 spielen erst bei aktivierten Debug eine Rolle.