Nightscout selbst aufsetzen und hosten

  • Moin,

    Das hängt davon ab, wie Du die ganze Geschichte konfiguriert hat. Normalerweise macht certbot die Verlängerungen automatisch, dafür benötigt er aber offene Ports oder den NGINX Reverse Proxy. Ich mache ihm die Ports immer an der Firewall zu, damit meine Kiste nicht auf den Standard Webports mit einem Standard Webserver erreichbar ist.

    Wenn bei mir das Zertifikat erneuert werden muss, dann muss ich vor Ablauf der Zeit Port 443 öffnen und wenn schon abgelaufen auch noch Port 80 öffnen. Dann kannst Du mir sudo certbot das Zertifikat erneuern.

    Falls es dann immernoch nicht geht, solltest Du noch diese Export-Schritte aus der Anleitung wiederholten, damit diese auch dem nginx und nightscout bekannt gemacht werden.

    Gruß ovinator

    Einmal editiert, zuletzt von ovinator ()

  • Ist nginx installiert? Und falls du NightScout auf Port 80 oder 443 hast, musst du es vorher beenden, dass das funktioniert.

  • Habe jetzt nginx aus dokumentiert und certbot gestartet = voller Erfolg hatte wohl in einem config file nen Fehler.

    sudo certbot renew --dry-run funktioniert nun auch sofort wieder :laubohne das ich nginx oder Nightscout beenden muss.


    Hoffe das jetzt der Cronjob greift und ich mich nicht drum kümmern muss.


    CronJob

    -----

    # /etc/cron.d/certbot: crontab entries for the certbot package

    #

    # Upstream recommends attempting renewal twice a day

    #

    # Eventually, this will be an opportunity to validate certificates

    # haven't been revoked, etc. Renewal will only occur if expiration

    # is within 30 days.

    #

    # Important Note! This cronjob will NOT be executed if you are

    # running systemd as your init system. If you are running systemd,

    # the cronjob.timer function takes precedence over this cronjob. For

    # more details, see the systemd.timer manpage, or use systemctl show

    # certbot.timer.

    SHELL=/bin/sh

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin


    0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

  • Wird nicht aktualisiert X(

    hier ein log


    Mar 4 23:59:09 nightscout start.sh[542]: #011 sgvs:575, treatments:16, profiles:1, devicestatus:283, sensorTreatments:2

    Mar 4 23:59:09 nightscout start.sh[542]: data loaded: reloading sandbox data and updating plugins

    Mar 5 00:00:01 nightscout CRON[5369]: (pi) CMD (root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)

    Mar 5 00:00:01 nightscout CRON[5370]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)

    Mar 5 00:00:01 nightscout CRON[5368]: (CRON) info (No MTA installed, discarding output)

    Mar 5 00:00:04 nightscout start.sh[542]: tick 2022-03-04T23:00:04.630Z

    Mar 5 00:00:09 nightscout start.sh[542]: Load Complete:


    was mache ich falsch ?

  • War mit root zugriff (sudo su) unterwegs, wie bekomme ich das denn nu hin ?


    Das hier steht im letsencrypt.log


    2022-03-05 06:54:34,018:DEBUG:certbot.error_handler:Calling registered functions

    2022-03-05 06:54:34,019:INFO:certbot.auth_handler:Cleaning up challenges

    2022-03-05 06:54:35,583:WARNING:certbot.renewal:Attempting to renew cert (myhome.com) from /etc/letsencrypt/renewal/myhome.com.conf produced an unexpected error: Failed authorization procedure. myhome.com (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://myhome.com/.well-known/…AU516CR9MsWqCQhuw06w4gSU: Timeout during connect (likely firewall problem). Skipping.


    Also wird certbot renew ausgeführt aber warum geht es manuell oder wohl nur mit root zugriff ?



    Hat das denn keiner von euch Automatisiert ?

  • Doch, wir haben das automatisiert, aber es läuft halt einfach.

    Ich muss bei meinem Setup immer erst apache beenden (oder nginx oder auch nur nightscout), dass der Port für certbet frei wird.

    Certbot hat dafür pre- und after- update hooks um stop und start-scripte hinterlegen zu können.

  • Doc von letsencrypt:


    Gelegentlich erhalten wir Berichte von Personen, die Probleme mit der Verwendung des Aufforderungstyps HTTP-01 haben, weil sie den Port 80 für ihren Webserver durch eine Firewall geschützt haben. Wir empfehlen, dass alle Server, die für die allgemeine Webnutzung vorgesehen sind, sowohl HTTP auf Port 80 als auch HTTPS auf Port 443 anbieten. Sie sollten auch Weiterleitungen für alle Port 80-Anforderungen und möglicherweise einen HSTS-Header (auf Port 443-Anforderungen) senden.

    Das Zulassen von Port 80 führt nicht zu einem größeren Angriffsvektor auf Ihrem Server, da Anforderungen an Port 80 im Allgemeinen von derselben Software bedient werden wie auf Port 443.

    Das Schließen von Port 80 verringert nicht das Risiko für eine Person, die versehentlich Ihre Webseite über HTTP besucht. Unter normalen Umständen würde diese Person eine Weiterleitung zu HTTPS erhalten, und der nachfolgende Datenverkehr wird geschützt. Wenn diese Person einem aktiven Man-In-The-Middle-Angriff (MITM) unterliegt, antwortet der MITM auf Port 80, sodass Ihre Site niemals die Möglichkeit hat, mit “Verbindung abgelehnt” zu antworten.

    Wenn Sie den Port 80 offen halten, um eine Weiterleitung zu ermöglichen, können die Benutzer die richtige Version Ihrer Webseite (die HTTPS-Version) aufrufen. Es gibt verschiedene Situationen, auf die Sie keinen Einfluss haben und die möglicherweise kurzzeitig jemanden auf der HTTP-Version Ihrer Webseite landen - beispielsweise die automatische Verknüpfung in E-Mails oder die manuelle Eingabe eines Domainnamens. Es ist für sie besser, eine Weiterleitung als einen Fehler zu erhalten.


    Werde mal nach 60 Tagen Port80 offen lassen und mich überraschen lassen :)

  • Kann es sein das bei mir dreimal der Cronjob läuft ?

    --------

    root@nightscout:/# grep -i certbot /var/log/syslog

    Mar 7 06:11:55 nightscout systemd[1]: Starting Certbot...

    Mar 7 06:11:56 nightscout systemd[1]: certbot.service: Succeeded.

    Mar 7 06:11:56 nightscout systemd[1]: Started Certbot.

    Mar 7 12:00:01 nightscout CRON[2488]: (root) CMD (root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)

    Mar 7 12:00:01 nightscout CRON[2489]: (pi) CMD (root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)

    Mar 7 12:00:01 nightscout CRON[2487]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew)

    Mar 7 15:30:55 nightscout systemd[1]: Starting Certbot...

    Mar 7 15:30:56 nightscout systemd[1]: certbot.service: Succeeded.

    Mar 7 15:30:56 nightscout systemd[1]: Started Certbot.

    -------

  • in verschiedenen Bastelprojekten eingebunden.

    Das sind si auch optimal aufgehoben ;-)

    Heb sie gut auf, Raspis sind gerade ne gute Anlage, die alten werden immer teurer und sinch nur noch recht teuer gebraucht zu kaufen. Neu gerade Weltweit gar nicht ;-)

  • Solange unsere Geräte im Wlan sind, ist mir die DSL-Verbindung sowieso egal, da wird der Pi über die lokale Namensauflösung erreicht (natürlich macht der Pi bei mir auch den DNS). Und wenn man unterwegs ist, kann zur Not auch später alles in Nightscout gepumpt werden.


    Ich habe eine Fritzbox, die meine lokale DNS-Auflösung macht. Weiß jemand ob ich dort einen lokalen Eintrag machen kann, der im lokalen Netzwerk meine Domain auf eine lokale IP-Adresse auflöst (bzw auf sich selbst), so dass ich nicht über meinen Provider gehen muss?

  • Ich habe eine Fritzbox, die meine lokale DNS-Auflösung macht. Weiß jemand ob ich dort einen lokalen Eintrag machen kann, der im lokalen Netzwerk meine Domain auf eine lokale IP-Adresse auflöst (bzw auf sich selbst), so dass ich nicht über meinen Provider gehen muss?

    Das sollte bei Standardeinstellungen mit rechnername.fritz.box funktionieren.