NEWS
Probleme mit ACME Adapter
-
Hallo,
Ich habe Probleme bei der Inbetriebnahme des ACME Adapters. Ich würde diesen für den Simple-API Adapter benötigen.
Eine mehrmalige Suche blieb leider erfolglos!!
Bei Neustart des Adapters bekomme ich im Log folgende Fehlermeldung:2024-08-16 09:41:10.858 - info: host.ioBroker stopInstance system.adapter.acme.0 (force=false, process=false) 2024-08-16 09:41:10.859 - info: host.ioBroker stopInstance canceled schedule system.adapter.acme.0 2024-08-16 09:41:14.141 - info: host.ioBroker instance scheduled system.adapter.acme.0 0 0 * * * 2024-08-16 09:41:14.152 - info: host.ioBroker instance system.adapter.acme.0 in version "1.0.1" started with pid 203741 2024-08-16 09:41:14.780 - debug: acme.0 (203741) Redis Objects: Use Redis connection: 127.0.0.1:9001 2024-08-16 09:41:14.800 - debug: acme.0 (203741) Objects client ready ... initialize now 2024-08-16 09:41:14.801 - debug: acme.0 (203741) Objects create System PubSub Client 2024-08-16 09:41:14.801 - debug: acme.0 (203741) Objects create User PubSub Client 2024-08-16 09:41:14.833 - debug: acme.0 (203741) Objects client initialize lua scripts 2024-08-16 09:41:14.835 - debug: acme.0 (203741) Objects connected to redis: 127.0.0.1:9001 2024-08-16 09:41:14.855 - debug: acme.0 (203741) Redis States: Use Redis connection: 127.0.0.1:9000 2024-08-16 09:41:14.865 - debug: acme.0 (203741) States create System PubSub Client 2024-08-16 09:41:14.865 - debug: acme.0 (203741) States create User PubSub Client 2024-08-16 09:41:14.926 - debug: acme.0 (203741) States connected to redis: 127.0.0.1:9000 2024-08-16 09:41:14.989 - info: acme.0 (203741) starting. Version 1.0.1 in /opt/iobroker/node_modules/iobroker.acme, node: v18.20.4, js-controller: 6.0.10 2024-08-16 09:41:14.997 - debug: acme.0 (203741) config: {"maintainerEmail":"xxx@yyy.de","useStaging":true,"http01Active":true,"port":80,"bind":"0.0.0.0","dns01Active":false,"dns01Module":"","dns01OapiUser":"","dns01OapiKey":"","dns01OclientIp":"","dns01Okey":"","dns01Osecret":"","dns01Otoken":"","dns01Ousername":"","dns01OverifyPropagation":false,"dns01PpropagationDelay":120000,"collections":[{"id":"ACME","commonName":"xxx.yyydns.tv","altNames":"xxx.yyydns.tv"}]} 2024-08-16 09:41:14.998 - debug: acme.0 (203741) Init http-01 challenge server 2024-08-16 09:41:14.999 - debug: acme.0 (203741) Using URL: https://acme-staging-v02.api.letsencrypt.org/directory 2024-08-16 09:41:15.534 - debug: acme.0 (203741) Loaded existing ACME account: {"_id":"acme.0.account","type":"meta","common":{"name":"account","type":"json","role":"json"},"native":{"full":{"key":{"kty":"EC","crv":"P-256","x":"t2vdG0gXUYzvIBfYsk2Dso5W1yr3sfYam3jX1CM","y":"Y5387XqUlvA9KRvUx5BofNXNid-rZGhAjKVzsR3I","kid":"https://acme-staging-v02.api.letsencrypt.org/acme/acct/158783893"},"contact":["mailto:g.xxx@aon.at"],"initialIp":"xxx.yyy.239.215","createdAt":"2024-08-09T08:37:59.798032803Z","status":"valid"},"key":{"kty":"EC","crv":"P-256","d":"lRhM0N0Oyo_5V-wS3o9IsvqSo0Zb9V4woaUA","x":"t2vdG0gXUYzUmku2Dso5W1yr3sfYam3jX1CM","y":"Y5387XqU3KRvUx5BofNXNid-rZGhAjKVzsR3I","kid":"xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM"}},"from":"system.adapter.acme.0","ts":1723794074986,"acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"user":"system.user.admin"} 2024-08-16 09:41:15.535 - debug: acme.0 (203741) Collection: {"id":"ACME","commonName":"xxx.yyydns.tv","altNames":"xxx.yyydns.tv"} 2024-08-16 09:41:15.535 - debug: acme.0 (203741) domains: ["xxx.yyydns.tv","xxx.yyydns.tv"] 2024-08-16 09:41:15.536 - info: acme.0 (203741) Collection ACME does not exist - will create 2024-08-16 09:41:15.537 - debug: acme.0 (203741) Checking for adapter other than us (system.adapter.acme.0) on our host/bind/port ioBroker/0.0.0.0/80... 2024-08-16 09:41:15.575 - debug: acme.0 (203741) No adapters found on same port, nothing to stop 2024-08-16 09:41:16.721 - debug: acme.0 (203741) init: {"type":"*"} 2024-08-16 09:41:16.723 - debug: acme.0 (203741) _set: {"challenge":{"identifier":{"type":"dns","value":"xxx.yyydns.tv"},"challenges":[{"type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-01179a3ecc13890dcaa59b72949f0b5d-0"},{"type":"dns-01","status":"pending","url":"https://acme-staging-v02.example.com/1","token":"test-01179a3ecc13890dcaa59b72949f0b5d-1","_wildcard":true}],"expires":"2024-08-16T07:42:16.723Z","type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-01179a3ecc13890dcaa59b72949f0b5d-0","hostname":"xxx.yyydns.tv","altname":"xxx.yyydns.tv","thumbprint":"xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","keyAuthorization":"test-01179a3ecc13890dcaa59b72949f0b5d-0.xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","challengeUrl":"http://xxx.yyydns.tv/.well-known/acme-challenge/test-01179a3ecc13890dcaa59b72949f0b5d-0"}} 2024-08-16 09:41:16.724 - debug: acme.0 (203741) Added test-01179a3ecc13890dcaa59b72949f0b5d-0 - DB now contains: 1 2024-08-16 09:41:16.724 - debug: acme.0 (203741) _set: {"challenge":{"identifier":{"type":"dns","value":"xxx.yyydns.tv"},"challenges":[{"type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-209adec02707120f67816872b6c31e81-0"},{"type":"dns-01","status":"pending","url":"https://acme-staging-v02.example.com/1","token":"test-209adec02707120f67816872b6c31e81-1","_wildcard":true}],"expires":"2024-08-16T07:42:16.723Z","type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-209adec02707120f67816872b6c31e81-0","hostname":"xxx.yyydns.tv","altname":"xxx.yyydns.tv","thumbprint":"xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","keyAuthorization":"test-209adec02707120f67816872b6c31e81-0.xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","challengeUrl":"http://xxx.yyydns.tv/.well-known/acme-challenge/test-209adec02707120f67816872b6c31e81-0"}} 2024-08-16 09:41:16.724 - debug: acme.0 (203741) Added test-209adec02707120f67816872b6c31e81-0 - DB now contains: 2 2024-08-16 09:41:16.725 - info: acme.0 (203741) challengeServer listening on 0.0.0.0 port 80 2024-08-16 09:41:21.952 - debug: acme.0 (203741) challengeServer request: /.well-known/acme-challenge/test-01179a3ecc13890dcaa59b72949f0b5d-0 2024-08-16 09:41:21.953 - debug: acme.0 (203741) Got challenge for test-01179a3ecc13890dcaa59b72949f0b5d-0 2024-08-16 09:41:21.953 - debug: acme.0 (203741) Challenge server status & response: 200 test-01179a3ecc13890dcaa59b72949f0b5d-0.xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM 2024-08-16 09:41:21.980 - debug: acme.0 (203741) challengeServer request: /.well-known/acme-challenge/test-209adec02707120f67816872b6c31e81-0 2024-08-16 09:41:21.980 - debug: acme.0 (203741) Got challenge for test-209adec02707120f67816872b6c31e81-0 2024-08-16 09:41:21.981 - debug: acme.0 (203741) Challenge server status & response: 200 test-209adec02707120f67816872b6c31e81-0.xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM 2024-08-16 09:41:21.982 - debug: acme.0 (203741) remove: {"challenge":{"identifier":{"type":"dns","value":"xxx.yyydns.tv"},"challenges":[{"type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-01179a3ecc13890dcaa59b72949f0b5d-0"},{"type":"dns-01","status":"pending","url":"https://acme-staging-v02.example.com/1","token":"test-01179a3ecc13890dcaa59b72949f0b5d-1","_wildcard":true}],"expires":"2024-08-16T07:42:16.723Z","type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-01179a3ecc13890dcaa59b72949f0b5d-0","hostname":"xxx.yyydns.tv","altname":"xxx.yyydns.tv","thumbprint":"xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","keyAuthorization":"test-01179a3ecc13890dcaa59b72949f0b5d-0.xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","challengeUrl":"http://xxx.yyydns.tv/.well-known/acme-challenge/test-01179a3ecc13890dcaa59b72949f0b5d-0"}} 2024-08-16 09:41:21.982 - debug: acme.0 (203741) remove: {"challenge":{"identifier":{"type":"dns","value":"xxx.yyydns.tv"},"challenges":[{"type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-209adec02707120f67816872b6c31e81-0"},{"type":"dns-01","status":"pending","url":"https://acme-staging-v02.example.com/1","token":"test-209adec02707120f67816872b6c31e81-1","_wildcard":true}],"expires":"2024-08-16T07:42:16.723Z","type":"http-01","status":"pending","url":"https://acme-staging-v02.example.com/0","token":"test-209adec02707120f67816872b6c31e81-0","hostname":"xxx.yyydns.tv","altname":"xxx.yyydns.tv","thumbprint":"xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","keyAuthorization":"test-209adec02707120f67816872b6c31e81-0.xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","challengeUrl":"http://xxx.yyydns.tv/.well-known/acme-challenge/test-209adec02707120f67816872b6c31e81-0"}} 2024-08-16 09:41:21.982 - debug: acme.0 (203741) DB now contains: 1 2024-08-16 09:41:21.982 - debug: acme.0 (203741) DB now contains: 0 2024-08-16 09:41:22.473 - debug: acme.0 (203741) ACMENotify - certificate_order: {"account":{"key":{"kid":"https://acme-staging-v02.api.letsencrypt.org/acme/acct/158783893"}},"subject":"xxx.yyydns.tv","altnames":["xxx.yyydns.tv","xxx.yyydns.tv"],"challengeTypes":["http-01"]} 2024-08-16 09:41:29.447 - debug: acme.0 (203741) ACMENotify - challenge_status: {"status":"valid","type":"http-01","altname":"xxx.yyydns.tv"} 2024-08-16 09:41:29.447 - debug: acme.0 (203741) remove: {"challenge":{"identifier":{"type":"dns","value":"xxx.yyydns.tv"},"status":"valid","expires":"2024-09-08T08:38:14Z","challenges":[{"type":"http-01","url":"https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/13506888243/J7axaQ","status":"valid","validated":"2024-08-09T08:38:13Z","token":"xxx9zNNESD32KwM0vdYgr0JutvY4","validationRecord":[{"url":"http://xxx.yyydns.tv/.well-known/acme-challenge/xxx9zNNESD32KwM0vdYgr0JutvY4","hostname":"xxx.yyydns.tv","port":"80","addressesResolved":["xxx.yyy.239.215"],"addressUsed":"xxx.yyy.239.215"}]}],"type":"http-01","url":"https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/13506888243/J7axaQ","validated":"2024-08-09T08:38:13Z","token":"xxx9zNNESD32KwM0vdYgr0JutvY4","validationRecord":[{"url":"http://xxx.yyydns.tv/.well-known/acme-challenge/xxx9zNNESD32KwM0vdYgr0JutvY4","hostname":"xxx.yyydns.tv","port":"80","addressesResolved":["xxx.yyy.239.215"],"addressUsed":"xxx.yyy.239.215"}],"hostname":"xxx.yyydns.tv","altname":"xxx.yyydns.tv","thumbprint":"xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","keyAuthorization":"xxx9zNNESD32KwM0vdYgr0JutvY4.xxxOUHINiIeVY9MBrlPP8G40TK9xPPaKJrAM","challengeUrl":"http://xxx.yyydns.tv/.well-known/acme-challenge/xxx9zNNESD32KwM0vdYgr0JutvY4"}} 2024-08-16 09:41:29.448 - debug: acme.0 (203741) DB now contains: 0 2024-08-16 09:41:30.180 - debug: acme.0 (203741) ACMENotify - certificate_status: {"subject":"xxx.yyydns.tv","status":"processing"} 2024-08-16 09:41:31.763 - debug: acme.0 (203741) ACMENotify - certificate_status: {"subject":"xxx.yyydns.tv","status":403} 2024-08-16 09:41:31.764 - error: acme.0 (203741) Certificate request for ACME (xxx.yyydns.tv,xxx.yyydns.tv) failed: Error: Didn't finalize order: Unhandled status '403'. This is not one of the known statuses... Requested: 'xxx.yyydns.tv, xxx.yyydns.tv' Validated: '' { "type": "urn:ietf:params:acme:error:orderNotReady", "detail": "Order's status (\"valid\") is not acceptable for finalization", "status": 403 } Please open an issue at https://git.rootprojects.org/root/acme.js 2024-08-16 09:41:31.764 - debug: acme.0 (203741) Done 2024-08-16 09:41:31.766 - debug: acme.0 (203741) No collections found 2024-08-16 09:41:31.766 - debug: acme.0 (203741) Shutdown... 2024-08-16 09:41:31.766 - info: acme.0 (203741) Shutting down challengeServer 2024-08-16 09:41:31.766 - debug: acme.0 (203741) No previously shutdown adapters to restart 2024-08-16 09:41:31.766 - info: acme.0 (203741) Terminated (ADAPTER_REQUESTED_TERMINATION): Processing complete 2024-08-16 09:41:32.314 - info: host.ioBroker instance system.adapter.acme.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
und im Status des Adpters habe ich folgende Zeile:
Cannot import from custom/customComponents.js: TypeError: class heritage r.ConfigGeneric is not an object or null
Sind das vielleicht nur Rechteprobleme auf einem Ordner?
Genau das gleiche Problem habe ich auf einer 2ten Installation bei einem Freund.
Über Tipps würde ich mich sehr freuenlg g.pitzer
-
@g-pitzer sagte in Probleme mit ACME Adapter:
Bei Neustart des Adapters bekomme ich im Log folgende Fehlermeldung:
Bitte keine Screenshots von Text, sondern als Text in CodeTags eingebettet hier rein kopieren.
-
@thomas-braun
passt das so? -
Zumindest kann man damit nun mehr anfangen als mit Bildchen von Text.
-
@g-pitzer ist denn Port 80 von außen auf das ioBroker-System weiter geleitet? Für die Challenge lasst der ja einen Webserver laufen der von Lets Encrypt erreicht werden muss.
Undxxx.yyydns.tv
muss natürlich auf deine Box zeigen.Ein
403
ist ja ein "Zugriff Verboten". Ich erkenne gerade nicht wie rum (ob es dein Zugriff auf Lets Encrypt war oder deren Zugriff auf dein System) -
@bananajoe
der Port 80 wird weitergeleitet, ist auch schon in meiner Firewall ersichtlich
deswegen vermute ich ja ein Rechteproblem auf meinem ioBroker.
Der ACME Adapter hört ja nur kurz während der Aktualisierung auf den Port 80, danach wird ja wieder der Dienst beendet. Aber in dieser Zeit bekomme ich mit Powershell die Meldung das der Port 80 erreichbar ist.Ergänzung:
Ich hatte vorher Apache und Certbot für lets encrypt installiert und diese wieder deinstalliert. Habe ich vieleicht damit etwas zerschossen? -
@g-pitzer sagte in Probleme mit ACME Adapter:
Ergänzung:
Ich hatte vorher Apache und Certbot für lets encrypt installiert und diese wieder deinstalliert. Habe ich vieleicht damit etwas zerschossen?Apache sollte egal sein, der läuft ja offentsichtlich nicht mehr auf Port 80
certbot
, da musste ich erst einmal auf einem älteren System nachsehen (nutze inzwischenacme.sh
),
Der legt seine Verzeichnisse unterhalb von/etc/letsencrypt
an, gibt es den Ordner noch?
Hattecerbot
funktioniert? Der kennt ja auch einen "Standalone Modus", den nutzte ich auch immer (wegen Reverse Proxy)Wo der Adapter seine Zertifikate ablegt weis ich aber nicht
-
@g-pitzer sagte in Probleme mit ACME Adapter:
Please open an issue at https://git.rootprojects.org/root/acme.js
Wo ich mir das ganze gerade so ansehe ... das Projekt dort scheint ja nun auch schon seit 3 Jahren nicht mehr gepflegt zu sein ... auch wenn es wohl zu github umgezogen ist: https://github.com/therootcompany/acme.js
Und es gibt schon ein Issue zu deinem Problem:
https://github.com/therootcompany/acme.js/issues/10Das bist aber nicht du, oder?
-
@bananajoe
Certbot funktioniert anscheinend seit dem Update auf bookworm nicht mehr, deswegen versuche ich ja den ACME Adapter
Die Zertifikate sind unter /etc/letsencrypt/live/ gelegen, diesen Ordner gibt es nicht mehr. -
@bananajoe
Nein das bin nicht ich, der Leon scheint aber das gleiche Problem zu haben, aber leider auch noch keine Antwort bekommen zu haben -
Und schon wieder ich ...
Du willst den Adapter wegen dem Simple-API Adapter nutzen.
Ich unterstelle mal, du willst die Simple-API per https von außen erreichbar machen?
Falls ja: das habe ich auch schon gemacht, per Apache2 - Reverse Proxy, Lets Encrypt Zertifikat und Basic-Authentification.
Allerdings auf einem separaten System/VM weil ich das für alles mögliche brauche.
Kann aber auch auf den ioBroker mitlaufen. -
@bananajoe du vermutest richtig
Eigenständig könnt ich das auch laufen lassen, bei mir schnurrt auch ein Proxmox dahin
Soweit kenn ich mich aber leider nicht aus. Hättest du eine Anleitung oder Link für das Einrichten dann könnte ich mich damit spielen? -
@g-pitzer ich habe befürchtet das die Frage kommt und schon überlegt wie tauglich mein Konstrukt ist.
Ich nutze ISPConfig unter Ubuntu, abgespeckt auf den Webserverteil. Weil ich faul bin, ISPConfig legt über über das Webinterface die Subdomain an, holt sich das Lets Encrypt-Zertifikat, macht einen Eintrag für die http zu https Umleitung. Und lässt die Subdomain unter einen eigenen, eingeschränkten Benutzer laufen.Ich packe dann nur noch die Proxy-Anweisungen in die Konfig und bin fertig.
Nachteil ist das ISPConfig bei Proxy-Seiten das erneuern selbst nicht auf die Reihe bekommt (was sich mir einem separaten Cronjob füracme.sh
lösen lässt (hält den Apache2 für eine Erneuerung an und nutzt den eigenen Webserver).Also die Proxy-Anweisungen kann ich dir liefern (und Basic Auth), auch wie man Geo-IP-Blocking einbaut.,
Eine Schritt-für-Schritt-Anleitung für einen Webserver mit Lets-Encrypt hätte ich aber nicht. -
@bananajoe
ok, ab jetzt steige ich aus
schon alleine deine Beschreibung zeigt mir dass ich dem Projekt nicht gewachsen bin. Ich werde dann doch lieber abwarten ob der Fall im Github gelöst wird. So wichtig ist Das dann doch nicht.
Aber vielen Dank für deine Versuche mir zu helfen -
@g-pitzer Ich schließe mich hier mal an:
Bei mir erzeugt der ACME-Adapter zwar Zertifikate für „Admin" und die kann ich auch auswählen.
ABER
Unter der acme-Instanz „Status“ erscheint eben jene Fehlermeldung. Und die Nutzung von letsencrypt – so wie „früher TM“ will iobroker nicht mehr haben.
Ich werde auf ACME verwiesen, wenn ich den letsencrypt-Tab öffne.Nun habe ich zwar, trotz der Fehlermeldung, aktuelle Zertifikate, aber wie bitte kann ich die für ein Grafana zweitverwenden, welches eben auch hier läuft? Dazu bräuchte ich das in Form von Key und Zertifikat … Wo bitte speichert ACME den Krempel? Wie können andere das da nutzen?
Und für mich – ich schlafe nicht mit Linux – undurchsichtig, warum der alte Weg nicht mehr geht und der neue mehr oder weniger ungepflegt wirkt.
Und selbst andere Adapter ermöglichen nicht, das ACME-Zertifikat auszuwählen. Das geht bisher bei mir nur im ADMIN. Andere Adapter zeigen nur an, was ich als Zertifikat sonst hochgeladen habe oder was iobroker eben selbst angelegt hat. -
Inhalt hier unpassen. Deshalb gelöscht