.titleBar { margin-bottom: 5px!important; }

Certbot für letsencrypt auf Fritzbox

Dieses Thema im Forum "Freetz" wurde erstellt von hallihallo2, 24 März 2018.

  1. hallihallo2

    hallihallo2 Neuer User

    Registriert seit:
    3 Juni 2016
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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:

  2. Shirocco88

    Shirocco88 Mitglied

    Registriert seit:
    4 Jan. 2016
    Beiträge:
    581
    Zustimmungen:
    27
    Punkte für Erfolge:
    28
    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.
     
  3. tuxedonet

    tuxedonet Neuer User

    Registriert seit:
    20 Sep. 2015
    Beiträge:
    105
    Zustimmungen:
    3
    Punkte für Erfolge:
    18
    #3 tuxedonet, 24 März 2018
    Zuletzt bearbeitet: 25 März 2018
    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.
     
  4. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    10,443
    Zustimmungen:
    407
    Punkte für Erfolge:
    83
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    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). ]
     
  5. hallihallo2

    hallihallo2 Neuer User

    Registriert seit:
    3 Juni 2016
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    #5 hallihallo2, 24 März 2018
    Zuletzt von einem Moderator bearbeitet: 24 März 2018
    @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 webmaster@fritz.box --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
     
  6. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    10,443
    Zustimmungen:
    407
    Punkte für Erfolge:
    83
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    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.
     
  7. tuxedonet

    tuxedonet Neuer User

    Registriert seit:
    20 Sep. 2015
    Beiträge:
    105
    Zustimmungen:
    3
    Punkte für Erfolge:
    18
    @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 ?
     
  8. Shirocco88

    Shirocco88 Mitglied

    Registriert seit:
    4 Jan. 2016
    Beiträge:
    581
    Zustimmungen:
    27
    Punkte für Erfolge:
    28
    #8 Shirocco88, 25 März 2018
    Zuletzt bearbeitet: 25 März 2018
    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.
     
  9. hallihallo2

    hallihallo2 Neuer User

    Registriert seit:
    3 Juni 2016
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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?
     
  10. Shirocco88

    Shirocco88 Mitglied

    Registriert seit:
    4 Jan. 2016
    Beiträge:
    581
    Zustimmungen:
    27
    Punkte für Erfolge:
    28
    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.
     
  11. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    10,443
    Zustimmungen:
    407
    Punkte für Erfolge:
    83
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    #11 PeterPawn, 25 März 2018
    Zuletzt bearbeitet: 25 März 2018
    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:
    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.
     
  12. tuxedonet

    tuxedonet Neuer User

    Registriert seit:
    20 Sep. 2015
    Beiträge:
    105
    Zustimmungen:
    3
    Punkte für Erfolge:
    18
    @PeterPawn:
    habe gerade das Ticket mit den Python-Erweiterungen von dirkh gefunden:
    http://freetz.org/ticket/2781#comment:3
    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.
     
  13. Shirocco88

    Shirocco88 Mitglied

    Registriert seit:
    4 Jan. 2016
    Beiträge:
    581
    Zustimmungen:
    27
    Punkte für Erfolge:
    28
    Ja, hier ist der TE zur Mitwirkung gefordert;

    siehe auch:
    http://trac.freetz.org/wiki/FAQ#BeimErstellentrittimmernocheinFehlerauf
     
  14. hallihallo2

    hallihallo2 Neuer User

    Registriert seit:
    3 Juni 2016
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hallo, hier ist meine config. Ich habe diese im Fork von dirkh. Gruss
     

    Anhänge:

  15. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    10,443
    Zustimmungen:
    407
    Punkte für Erfolge:
    83
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    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.
     
  16. hallihallo2

    hallihallo2 Neuer User

    Registriert seit:
    3 Juni 2016
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    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:

  17. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    10,443
    Zustimmungen:
    407
    Punkte für Erfolge:
    83
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    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.
     
  18. hallihallo2

    hallihallo2 Neuer User

    Registriert seit:
    3 Juni 2016
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    ok, dann trotzdem danke für die Hilfe. Ich gebe es auf uns werde certbot auf dem Pi installieren. Gruss
     
  19. Whoopie

    Whoopie Aktives Mitglied

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    806
    Zustimmungen:
    3
    Punkte für Erfolge:
    18
    Ich nutze acme.sh auf der FritzBox. Läuft einwandfrei und hat sehr wenige Abhängigkeiten.
     
  20. Shirocco88

    Shirocco88 Mitglied

    Registriert seit:
    4 Jan. 2016
    Beiträge:
    581
    Zustimmungen:
    27
    Punkte für Erfolge:
    28
    #20 Shirocco88, 30 März 2018
    Zuletzt bearbeitet: 30 März 2018
    ansonsten gibt es auch Empfehlung für letsencrypt.sh Skript:

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

    Update:
    seit 26.03.2018 ist die Datei make/certbot-cgi/files/.language im Commit
    https://github.com/dirk-dhu/freetz/commit/082e528b1d06460757464bb1b6272f55a75be0d6
    enthalten.