Certbot für letsencrypt auf Fritzbox

hallihallo2

Neuer User
Mitglied seit
3 Jun 2016
Beiträge
23
Punkte für Reaktionen
0
Punkte
3
Hallo allerseits,

ich bräuchte Hilfe, da ich hier nicht weiterkomme. Ich möchte den Certbot Client über der Fritzbox nutzen. Dazu ist wohl für Freetz ein Patch verfügbar: http://freetz.org/ticket/2896

Leider schaffe ich ich nicht den Patch ordnungsgemäß anzuwenden.

Folgende Erfahrungen habe ich gemacht:
1) Wenn ich die eigene Freetz Version vom Entwickler nehme (https://github.com/dirk-dhu/freetz.git ) scheint der Patch schon integriert zu sein, denn ich kann ihn unter Webinterface beim Freetz bauen anwenden. Das Bauen funktionert auch, leider kommt beim Aufruf des Menus auf der Fritzbox "language not set", so dass ich nichts lesen kann (siehe Foto)

2) Ich habe dann überlegt, dass die neuen Freetz-Versionen mit dem "alten Patch" (12 Monate alt) vieleicht nicht kompatibel sind und versuchte den alten Patch auf eine Freetz-Version zu spielen, die es zu der Zeit gab, an der der Patch funktioniert hat. Das bekomme ich aber nicht hin. Wenn ich das richtig verstanden habe (Anleitung: https://freetz.org/ticket/2896) , lade ich den Patch https://github.com/dirk-dhu/freetz/commit/fe8307ad8d79bcc889a3772310a5a8dd9601eb1b.patch herunter und kopiere ihn in das Freetz Verzeichnis, um ihn dann mittels patch -p0 < fe8307ad8d79bcc889a3772310a5a8dd9601eb1b.patch zu aktivieren. Leider erhalte ich damit nur eine Summe von Fehlermeldungen.

Hat bitte jemand einen Tipp, wie ich entweder Lösung 1 oder 2 verbesern kann, damit es funktioniert?

VG
 

Anhänge

  • Bildschirmfoto 2018-03-24 um 10.08.26.png
    Bildschirmfoto 2018-03-24 um 10.08.26.png
    139.9 KB · Aufrufe: 42
lade ich den Patch https://github.com/dirk-dhu/freetz/commit/fe8307ad8d79bcc889a3772310a5a8dd9601eb1b.patch herunter und kopiere ihn in das Freetz Verzeichnis, um ihn dann mittels patch -p0 < fe8307ad8d79bcc889a3772310a5a8dd9601eb1b.patch zu aktivieren. Leider erhalte ich damit nur eine Summe von Fehlermeldungen.
Wo sind denn die Fehlermeldungen ?
ich kann da in #1 nichts finden;

einfach den Befehlsoutput
patch -p0 < fe8307ad8d79bcc889a3772310a5a8dd9601eb1b.patch >
certbot-patch.out 2>&1

in eine Datei schreiben lassen und diese Datei certbot-patch.out zusammen mit .config Datei posten.
 
Hast Du schon mal die fehlenden Dateien/Verzeichnissen "make/certbot-cgi", "make/python-six/"
in den aktuellen Trunk kopiert

Code:
freetz@Freetz-VM:~$ git clone https://github.com/Freetz/freetz.git freetz-trunk
freetz@Freetz-VM:~$
freetz@Freetz-VM:~$ git clone https://github.com/dirk-dhu/freetz.git freetz-trunk-dhu-certbot
freetz@Freetz-VM:~$
freetz@Freetz-VM:~$ cp -rp freetz-trunk-dhu-certbot/make/certbot-cgi freetz-trunk/make
freetz@Freetz-VM:~$
freetz@Freetz-VM:~$ cp -rp freetz-trunk-dhu-certbot/make/python-certbot freetz-trunk/make
freetz@Freetz-VM:~$
freetz@Freetz-VM:~$ cp -rp freetz-trunk-dhu-certbot/make/python-six/ freetz-trunk/make
freetz@Freetz-VM:~$

und dann ein Freetz-Build vom aktuellen Trunk getestet ?
Code:
freetz@Freetz-VM:~$ cd freetz-trunk
freetz@Freetz-VM:~/freetz-trunk$ make menuconfig
freetz@Freetz-VM:~/freetz-trunk$ make

EDIT: Verzeichnis "python-certbot" auch nach Freetz-Trunk übernommen.
 
Zuletzt bearbeitet:
Um die "Passgenauigkeit" mußt Du Dir eigentlich keine Sorgen machen, denn vor einer Woche wurde auch für diesen Fork offenbar ein "rebase" gemacht.

Das sieht eher so aus, als würden die Dateien für das Web-Interface nicht passend vorbereitet, weil in "certbot-cgi" eine Datei ".language" fehlt. Anhand dieser Datei wird die Sprachversion des Freetz-Interfaces durch eine Art "pre-processing" direkt beim Build festgelegt (indem die Texte in den verarbeiteten Dateien so ersetzt werden, daß nur die verwendete Sprache übrigbleibt) - bei Freetz gibt es keine "dynamische Sprache".

Durch das Fehlen der Datei erfolgt diese Vorverarbeitung nicht ... die Datei sollte folgendermaßen aussehen für dieses "certbot-cgi"-Paket:
Code:
languages
{ de en }
default
{ de }
files
{
        usr/lib/cgi-bin/certbot.cgi
}
Diesen Inhalt als ".language" in "make/certbot-cgi/files" ablegen und noch einmal ein Image erzeugen lassen ... dann sollte das Interface auch passen. [ Man kann die Datei auch von einem anderen Paket kopieren - z.B. von "davfs2" - und dann den Dateinamen [EDIT: in der Datei] entsprechend anpassen (aber der muß geändert werden). ]
 
@peter Pawn
Die Sprachdatei war die Lösung, - herzlichen Dank

Es geht aber noch immer nicht. Beim Starten von Certbot über das Freetz Webinterface kommt:

Code:
Saving settings ... done.
Saving certbot.cfg ... done.

/mod/etc/init.d/rc.certbot: line 183: /usr/bin/certbot: not found
certbot request certificate once ...
... create certs ...
/usr/bin/certbot certonly --csr /mod/etc/default.certbot/ssl/server.der --tls-sni-01-port --standalone --preferred-challenges tls-sni-01 -d fritz.box --email [email protected] --cert-path /mod/etc/certbot/save/server.crt --fullchain-path /mod/etc/certbot/save/fullchain.pem --chain-path /mod/etc/certbot/save/chain.pem --agree-tos --non-interactive --text --renew-by-default
Checking Freetz configuration ... changed.
Writing 6367 bytes to /var/flash/freetz ... done.

Checking Freetz configuration ... unchanged.


Ich habe nachgesehen, die Datei /usr/bin/certbot existiert schon in
freetz-trunk/make/certbot-cgi nicht, also ist sie auch nicht im image drin.

Hat da noch jemand eine Idee?

VG

//edit by stoney: [CODE] TAG [/CODE] gesetzt
 
Zuletzt bearbeitet von einem Moderator:
Das PYTHON_CERTBOT-Paket (certbot 0.19.0) hast Du auch ausgewählt? Hier hat @dirk-dhu noch einen Fehler in der "Config.in" für das "certbot-cgi" ... das korrekte Symbol für das Paket lautet "FREETZ_PACKAGE_PYTHON_CERTBOT". Durch diese Diskrepanz wird das Paket nicht automatisch mit dem CGI-Paket ausgewählt. Entweder Du wählst es von Hand aus oder Du änderst die verlinkte Zeile in der "Config.in" im "certbot-cgi"-Paket.
 
@PeterPawn: Ich habe die 3 Verzeichnisse "certbot-cgi", "python-certbot", "python-six" sowie die Datei "make/certbot-cgi/Config.in" gemäß #6 angepasst
Code:
diff make/certbot-cgi/Config.in.old make/certbot-cgi/Config.in
3c3
<       select FREETZ_PYTHON_CERTBOT
---
>       select FREETZ_PACKAGE_PYTHON_CERTBOT

jedoch wird bei mir das Symbol "FREETZ_PACKAGE_PYTHON_CERTBOT" in .config nicht angezogen;
Code:
freetz@Freetz-VM:~/freetz-trunk$ grep FREETZ_PACKAGE_PYTHON_CERTBOT .config
freetz@Freetz-VM:~/freetz-trunk$
auch kann ich das Package "python-certbot" nicht in "make menuconfig" selektieren;

wo liegt das Problem ? oder was mache ich falsch ?
 
/mod/etc/init.d/rc.certbot: line 183: /usr/bin/certbot: not found

Hinweis:
die Definition "$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)$(PYTHON_SITE_PKG_DIR)/certbot"
in Datei "python-certbot/python-certbot.mk"
sieht irgendwie nicht nach Pfad "/usr/bin/certbot" aus.
ggf. gibt es hier noch einen weiterer "Stolperstein", der den Erfolg verhindert.

Bitte mal "find / -type f -name certbot -exec ls -lad {} \;" eingeben;
hier könnte dann ein zusätzlicher Softlink dieser Datei
"/usr/lib/python$(PYTHON_MAJOR_VERSION)/site-packages/certbot"
nach "/usr/bin/certbot" oder Anpassung der Datei
"/mod/etc/init.d/rc.certbot" als temp. Fix helfen.
 
Zuletzt bearbeitet:
Hallo, das Ergbnis des Befehls lautet:

root@fritz:/var# find / -type f -name certbot -exec ls -lad {} \;

-rw-r--r-- 1 root root 76 Mar 24 20:18 /var/mod/var/cache/menu/pkg/certbot

Hilft das weiter?
 
Ich habe nachgesehen, die Datei /usr/bin/certbot existiert schon in
freetz-trunk/make/certbot-cgi nicht, also ist sie auch nicht im image drin.
Könntest Du mal auf dem Buildhost den Befehl "find /home/freetz -type f -name certbot -exec ls -lad {} \;" eingeben und posten, dann sieht man mehr.
 
"python-certbot", "python-six"
Was hast Du in diesen beiden Verzeichnissen denn verändert?

Ich wüßte im Moment nicht, was da anzupassen wäre ... ansonsten kann das "python-certbot"-Paket halt nur dann ausgewählt werden, wenn Python generell ausgewählt wurde (das ist ja ein "depends" und kein "select"): https://github.com/dirk-dhu/freetz/blob/master/make/python-certbot/Config.in#L3

Vielleicht sollte man in die "Config.in" für das "certbot-cgi"-Paket stattdessen die Abhängigkeit von "FREETZ_PACKAGE_PYTHON_CERTBOT" aufnehmen ... dann wird das CGI-Paket nicht angeboten, ohne daß das passende Python-Paket auch ausgewählt wurde. Die Alternative wäre vielleicht, im CGI-Paket neben FREETZ_PACKAGE_PYTHON_CERTBOT auch noch FREETZ_PACKAGE_PYTHON zu aktivieren (select) - wobei der erste Weg irgendwo der logischere ist.

Bist Du denn sicher, daß Du alle notwendigen Pakete aus dem Fork hast? Oder hast Du auch gleich den Fork geklont?

EDIT:
Könntest Du mal auf dem Buildhost den Befehl "find /home/freetz -type f -name certbot -exec ls -lad {} \;" eingeben und posten.
Da das Build-System ja ein "full-featured 'find' command" enthalten sollte, ist das mit "find <path> -type f -name certbot -ls" deutlich einfacher zu realisieren ... vor allem die geschweiften Klammern und das Escapen des Semikolons können entfallen, was es - gerade für wenig geübte Kommandozeilen-Benutzer - deutlich leichter macht.

Aber ich kann hier gar nichts davon lesen, daß @hallihallo2 mal nach den notwendigen anderen Paketen gesehen hätte. War's das jetzt oder ist das irgendwie untergegangen?

Man sollte hier (meine Meinung) schon systematisch vorgehen und den Weg der Dateien vom Build bis ins Image verfolgen und nicht den umgekehrten Weg nehmen mit der Suche, ob die Datei nun vorhanden ist oder nicht. Ist sie es nicht, bleiben immer noch deutlich mehr Möglichkeiten offen, woran das liegen könnte ... fängt man am anderen Ende an, kann man sich wenigstens schon mal sicher sein, daß die Pakete überhaupt gebaut wurden und ohne diese Voraussetzung, wird es auch nirgendwo ein passendes Binary geben.

Wobei so langsam tatsächlich das Anhängen einer ".config" mal nett wäre ... das spart viele Nachfragen und schon die Feststellung, ob FREETZ_PACKAGE_PYTHON_CERTBOT nun aktiv ist oder gar nicht vorhanden, kann hier im ersten Schritt Klarheit schaffen, ob die anderen Pakete (a) im "make"-Verzeichnis existieren und (b) deren "Config.in"-Dateien auch in die komplette Eingabedatei für KConfig eingebunden wurden oder nicht und (c), ob FREETZ_PACKAGE_PYTHON (und die anderen Pakete, die für "python-certbot" noch benötigt werden) nun ausgewählt ist (ob automatisch oder manuell, sei mal dahingestellt) oder nicht.
 
Zuletzt bearbeitet:
@PeterPawn:
habe gerade das Ticket mit den Python-Erweiterungen von dirkh gefunden:
http://freetz.org/ticket/2781#comment:3
All packages needed for certbot, a letsencrpyt client are added, e.g.
certbot acme, zope, mock, ndg-httpsclient, pyasn, pycparser, idna, augeas and many more
d.h. der in #1 genannte Patch https://github.com/dirk-dhu/freetz/commit/fe8307ad8d79bcc889a3772310a5a8dd9601eb1b.patch reicht sicher nicht aus, um certbot mit dem aktuellen Trunk "zum Fliegen" zu bekommen;
daher ist es einfacher initial mit dem Fork von dirkh zu arbeiten.
 
Wobei so langsam tatsächlich das Anhängen einer ".config" mal nett wäre
Ja, hier ist der TE zur Mitwirkung gefordert;

siehe auch:
http://trac.freetz.org/wiki/FAQ#BeimErstellentrittimmernocheinFehlerauf
Beim Erstellen tritt immer noch ein Fehler auf…

Zunächst einmal im menuconfig unter 'Advanced Options' das 'Verbosity Level' auf 2 stellen und das make erneut ausführen. ...
dann unter Angabe der kompletten Fehlermeldung (bitte in Code-Tags), der Datei .config (als Attachment) und der verwendeten Version oder SVN-Revision um Hilfe bitten.
 
Hallo, hier ist meine config. Ich habe diese im Fork von dirkh. Gruss
 

Anhänge

  • _config.txt
    66 KB · Aufrufe: 4
Und ... wo wäre da auch nur ein einziges Python-Paket aktiviert?
Code:
vidar:/tmp # grep PYTHON _config.txt
# FREETZ_PACKAGE_PYTHON is not set
Hast Du den Hinweis in #6 nicht verstanden?

Die Abhängigkeiten zwischen den Paketen (und für die vollständige Funktion wird deutlich mehr als ein einziges Paket benötigt) sind noch nicht ganz korrekt ... aber mit ein paar Handgriffen kann man sich da durchaus selbst helfen - hier z.B. mit der manuellen Auswahl von Python an sich und des "certbot"-Pakets, das "sichtbar" wird, wenn man Python überhaupt erst einmal ausgewählt hat.
 
Ok, jetzt schon. Ich habe Python und die Python Addons für Certbot ausgewählt. Leider läuft der Built jetzt nicht mehr durch. Hätte da noch jemand einen Tipp?

Herzlichen Dank!

Anhang
 

Anhänge

  • Bildschirmfoto 2018-03-28 um 15.50.34.png
    Bildschirmfoto 2018-03-28 um 15.50.34.png
    108.2 KB · Aufrufe: 11
  • config.log.txt
    273.6 KB · Aufrufe: 4
  • _.config.txt
    70 KB · Aufrufe: 1
Sieht halt so aus, als würde "augeas" als Python-Paket auch "readline" (vielleicht sogar auch als Python-Module) brauchen ... die Abhängigkeiten in diesem Fork sind halt nicht sehr gut aufgelöst und vermutlich funktioniert es beim Autoren sogar, weil er schon vorher einige Pakete von Hand aktiviert hatte.

Also wird Dir auch nichts anderes bleiben, als Dich Stück für Stück durch die Abhängigkeiten vorwärts zu tasten, bis alles richtig aufgelöst wird. Wenn Du dabei auch gleich noch Buch führst über die gefundenen Probleme, kannst Du das dann an @dirk-dhu über GitHub melden ... ob er hier überhaupt einen Account hat oder nicht, weiß ich nicht (wenn, dann unter anderem Benutzernamen als im GitHub).

Das nächste auszuwählende Paket wäre dann also "readline" als Library, ich würde gleich prohylaktisch auch noch das Python-Module "modreadline" bauen lassen - wenn "readline" ohnehin schon als Lib ins Image muß.

Wobei das bei einer 7270v3 (so ist es jedenfalls in der ".config" eingestellt) ohnehin alles ziemlicher Kram ist ... erstens ist die "Vorlage" der Firmware von AVM uralt und mit einigen unschönen Löchern versehen und zweitens ist nun gerade in diesem Modell der Platz recht knapp im NOR-Flash und NAND-Flash ist gar nicht vorhanden - damit dürfte Python und das ganze andere Geraffel für dieses "certbot"-Projekt ohnehin nur mit "external"-Image funktionieren und ich weiß irgendwie nicht so richtig, ob das tatsächlich das richtige Einstiegsprojekt für "erste Schritte mit Freetz" ist.
 
ok, dann trotzdem danke für die Hilfe. Ich gebe es auf uns werde certbot auf dem Pi installieren. Gruss
 
Ich nutze acme.sh auf der FritzBox. Läuft einwandfrei und hat sehr wenige Abhängigkeiten.
 
ansonsten gibt es auch Empfehlung für letsencrypt.sh Skript:
Ich kann folgenden ACME-Client empfehlen: https://github.com/lukas2511/letsencrypt.sh
...
mit folgenden Abhängigkeiten: openssl, curl, sed, grep, mktemp


oder auch die Empfehlung von @DHU
https://www.ip-phone-forum.de/threa...t-auf-der-fritzbox.282964/page-2#post-2215837

Update:
Das sieht eher so aus, als würden die Dateien für das Web-Interface nicht passend vorbereitet, weil in "certbot-cgi" eine Datei ".language" fehlt. Anhand dieser Datei wird die Sprachversion des Freetz-Interfaces durch eine Art "pre-processing" direkt beim Build festgelegt (indem die Texte in den verarbeiteten Dateien so ersetzt werden, daß nur die verwendete Sprache übrigbleibt) - bei Freetz gibt es keine "dynamische Sprache".

Durch das Fehlen der Datei erfolgt diese Vorverarbeitung nicht ... die Datei sollte folgendermaßen aussehen für dieses "certbot-cgi"-Paket:
Code:
languages
{ de en }
default
{ de }
files
{
usr/lib/cgi-bin/certbot.cgi
}
Diesen Inhalt als ".language" in "make/certbot-cgi/files" ablegen und noch einmal ein Image erzeugen lassen ... dann sollte das Interface auch passen.

seit 26.03.2018 ist die Datei make/certbot-cgi/files/.language im Commit
https://github.com/dirk-dhu/freetz/commit/082e528b1d06460757464bb1b6272f55a75be0d6
enthalten.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.