Problème de renouvellement certificat Let's encrypt / swag

pimo

Apprenti
27 Novembre 2022
42
6
8
Bonjour suite au déplacement d'un NAS (omv6) de chez moi au local d'une association en décembre .
J'ai un soucis de renouvellement du certificat letsencrypt via swag.
(Chez moi aucun soucis en presque 1ans et demi !!!°
Je suppose que j'ai un soucis de config, mais lequel ???

Les mises a jour omv sont ok
J'avais fait la conversion avec "le docker compose" un peu avant le déplacement pas de soucis.
En container j'ai : duckdns , swag et filebrowser.
Dans la box sosh : j'avais fait un adressage statique pour l'ip du NAS, j'avais ouvert le port 443 et 80 pour son adresse ip.
J'ai bien reçu le mail de let's encrypt pour prevenir de l'expiration comme d'hab
J'ai mis a jour le container swag avec le duplicate/edit mais ça na pas réglé le problème.
voir copie d'ecran (le certificat et expiré au 06/02/24 et ne ce renouvelle pas)

Avez vous une idée ou une piste pour déceler et régler ce problème ?

-----------------------------------------------------------------------------------------------------------------------------------------------
version: "2.1"
services:
swag:
image: lscr.io/linuxserver/swag:latest
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=998
- PGID=100
- TZ=Europe/Paris
- URL=---------------.duckdns.org
- VALIDATION=duckdns
- SUBDOMAINS=wildcard
- DUCKDNSTOKEN=--------------------------------
- EMAIL=--------------@gmail.com
volumes:
- /home/docker/appdata/swag/config:/config
ports:
- 443:443
restart: unless-stopped
----------------------------------------------------------------------------------------------------------------------------------------------
 

Pièces jointes

  • swag1.jpg
    swag1.jpg
    388.7 KB · Affichages: 7
  • swag update.jpg
    swag update.jpg
    370 KB · Affichages: 7
Hello,
Est ce que tu as essayé en ajoutant 80:80 dans le mapping des ports du docker compose ?
Bonjour electroger , quand tu parles de mapping 80:80 du docker compose c'est dans portainer ou omv qu'il faut le configurer ?
 

Pièces jointes

  • portainer.jpg
    portainer.jpg
    191.7 KB · Affichages: 3
Comment as-tu déployé Swag ? J'imagine dans une stack dans Portainer, alors je dirais que c'est là que tu dois ajouter le port 80.
Je ne sais pas si c'est la bonne solution, j'imagine qu'une validation duckdns devrait pouvoir se faire sans le port 80, mais c'est problème que j'avais rencontré et solutionné de cette manière, mais j'étais probablement sur une validation http a l'époque.
Les logs de swag peuvent aussi donner quelques indications supplémentaires.
 
  • J'aime
Réactions: pimo
Bonjour de souvenir j'avais déployé swag avec une stack.
voici les logs de swag via portainer :

**** Adding goaccess to package install list ****
**** libmaxminddb already installed, skipping ****
**** The swag-dashboard conf has been updated ****
**** Compare the changes using the sample file: /config/nginx/proxy-confs/dashboard.subdomain.conf.sample
**** Applied the SWAG dashboard mod ****
[mod-init] **** Installing all mod packages ****
fetch http://dl-cdn.alpinelinux.org/alpine/v3.19/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.19/community/x86_64/APKINDEX.tar.gz
(1/1) Installing goaccess (1.8.1-r0)
Executing busybox-1.36.1-r15.trigger
OK: 202 MiB in 216 packages
[custom-init] No custom files found, skipping...
[ls.io-init] done.

Server ready
[mod-init] Running Docker Modification Logic
[mod-init] Adding linuxserver/mods:swag-dashboard to container
[mod-init] (ERROR) linuxserver/mods:swag-dashboard digest could not be fetched from lscr.io
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
usermod: no changes
───────────────────────────────────────
██╗ ███████╗██╗ ██████╗
██║ ██╔════╝██║██╔═══██╗
██║ ███████╗██║██║ ██║
██║ ╚════██║██║██║ ██║
███████╗███████║██║╚██████╔╝
╚══════╝╚══════╝╚═╝ ╚═════╝
Brought to you by linuxserver.io
───────────────────────────────────────
To support the app dev(s) visit:
Certbot: https://supporters.eff.org/donate/support-work-on-certbot
To support LSIO projects visit:
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 998
User GID: 100
───────────────────────────────────────
using keys found in /config/keys
Variables set:
PUID=998
PGID=100
TZ=Europe/Paris
URL=-----------.duckdns.org
SUBDOMAINS=wildcard
EXTRA_DOMAINS=
ONLY_SUBDOMAINS=false
VALIDATION=duckdns
CERTPROVIDER=
DNSPLUGIN=
EMAIL=---------------@gmail.com
STAGING=
find: /var/lib/letsencrypt: No such file or directory
find: /var/log/letsencrypt: No such file or directory
**** Permissions could not be set. This is probably because your volume mounts are remote or read-only. ****
**** The app may not work properly and we will not provide support for it. ****
the resulting certificate will only cover the subdomains due to a limitation of duckdns, so it is advised to set the root location to use www.subdomain.duckdns.org
Using Let's Encrypt as the cert provider
SUBDOMAINS entered, processing
Wildcard cert for ----------.duckdns.org will be requested
E-mail address entered: -------------@gmail.com
dns validation via duckdns plugin is selected
Certificate exists; parameters unchanged; starting nginx
The cert does not expire within the next day. Letting the cron script handle the renewal attempts overnight (2:08am).
**** The following active confs have different version dates than the samples that are shipped. ****
**** This may be due to user customization or an update to the samples. ****
**** You should compare the following files to the samples in the same folder and update them. ****
**** Use the link at the top of the file to view the changelog. ****
┌────────────┬────────────┬────────────────────────────────────────────────────────────────────────┐
│ old date │ new date │ path │
├────────────┼────────────┼────────────────────────────────────────────────────────────────────────┤
│ 2022-09-22 │ 2023-04-27 │ /config/nginx/authelia-server.conf │
│ 2022-08-05 │ 2023-04-13 │ /config/nginx/nginx.conf │
│ 2022-09-01 │ 2023-02-09 │ /config/nginx/proxy.conf │
│ 2022-09-08 │ 2023-05-31 │ /config/nginx/proxy-confs/portainer.subdomain.conf │
│ 2022-09-08 │ 2023-05-31 │ /config/nginx/proxy-confs/filebrowser.subdomain.conf │
│ 2022-09-01 │ 2023-11-27 │ /config/nginx/site-confs/default.conf │
│ 2022-08-20 │ 2023-04-27 │ /config/nginx/authelia-location.conf │
│ 2022-08-05 │ 2023-08-13 │ /config/nginx/ssl.conf │
└────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
**** Applying the SWAG dashboard mod... ****
**** goaccess already installed, skipping ****
**** libmaxminddb already installed, skipping ****
**** The swag-dashboard conf has been updated ****
**** Compare the changes using the sample file: /config/nginx/proxy-confs/dashboard.subdomain.conf.sample
**** Applied the SWAG dashboard mod ****
[custom-init] No custom files found, skipping...
[ls.io-init] done.

Server ready
warning: state file /config/log/logrotate.status is world-readable and thus can be locked from other unprivileged users. Skipping lock acquisition...
 
Swag semble constater que tes certificats sont toujours valides. Pour ma part, je gère ce point en relançant le container Swag avec une nouvelle liste de sous-domaines. Mais je n'en sais pas assez sur ton paramétrage (et je ne connais pas Portainer) pour t'orienter plus précisément.
 
  • J'aime
Réactions: pimo
Oui le certificat semble toujours valide. Il y a un problème de droit sur les répertoires /var/lib/letsencrypt et /var/log/letsencrypt :

find: /var/lib/letsencrypt: No such file or directory
find: /var/log/letsencrypt: No such file or directory
**** Permissions could not be set. This is probably because your volume mounts are remote or read-only. ****
**** The app may not work properly and we will not provide support for it. ****

Je ne sais pas si ça explique ton problème mais ça vaut peut être le coup de regarder.
 
  • J'aime
Réactions: pimo
Oui le certificat semble toujours valide. Il y a un problème de droit sur les répertoires /var/lib/letsencrypt et /var/log/letsencrypt :



Je ne sais pas si ça explique ton problème mais ça vaut peut être le coup de regarder.
Bonsoir oui j'ai traduit ça entre midi et deux mais je t'avoue que la je sais pas comment faire. Car gérer les droit de lecture de ce dossier je suppose que ça va être une galère de plus sur ce NAS diy.
Je sent que je vais être bon pour tous réinstaller ( j'ai déjà plus le moral :cry:)
 
Bonsoir oui j'ai traduit ça entre midi et deux mais je t'avoue que la je sais pas comment faire. Car gérer les droit de lecture de ce dossier je suppose que ça va être une galère de plus sur ce NAS diy.
Je sent que je vais être bon pour tous réinstaller ( j'ai déjà plus le moral :cry:)
J'ai plutôt l'impression que ton installation Swag n'a pas de volume mappé permettant de conserver le certificat. Mais si ce diagnostic est bon, je ne comprends pas pourquoi il estime que tu as un certificat valide.
Disposes-tu de certificats sur /home/docker/appdata/swag/config/etc/letsencrypt/ ?
 
  • J'aime
Réactions: pimo
Tu peux peut être réinstaller swag ? C'est pas très long.
Tu as toujours dans le dashboard Swag le message sur le certificat ?

D'ailleurs je comprends pas comment tu fais pour avoir accès au dashboard sans mapper le port 81 dans la stack de swag. J'ai vu aussi qu'il y a 2 fichiers proxy-conf pour filebrowser, je trouve ça étrange aussi. Et enfin ce serait pas mal de mettre à jour les fichiers *.conf lister dans les logs de swag.
 
  • J'aime
Réactions: pimo
J'ai plutôt l'impression que ton installation Swag n'a pas de volume mappé permettant de conserver le certificat. Mais si ce diagnostic est bon, je ne comprends pas pourquoi il estime que tu as un certificat valide.
Disposes-tu de certificats sur /home/docker/appdata/swag/config/etc/letsencrypt/ ?
Bonsoir je viens de me connecter en ssh dessus et voila le contenu du dossier
 

Pièces jointes

  • lett1.jpg
    lett1.jpg
    244.4 KB · Affichages: 6
Tu peux peut être réinstaller swag ? C'est pas très long.
Tu as toujours dans le dashboard Swag le message sur le certificat ?

D'ailleurs je comprends pas comment tu fais pour avoir accès au dashboard sans mapper le port 81 dans la stack de swag. J'ai vu aussi qu'il y a 2 fichiers proxy-conf pour filebrowser, je trouve ça étrange aussi. Et enfin ce serait pas mal de mettre à jour les fichiers *.conf lister dans les logs de swag.
Bonsoir le port 81 et mapper dans la config. pour les deux dossier proxyconf a l’époque le forum m'avait dépanné car impossible de faire fonctionner Filebrowser avec la config par default. Pour la mise a jour ça se fait pas tous seul quand il utilise la dernière image ?
 
Non, les fichiers *.conf ne se mettent pas a jour automatiquement. Ce sont les fichiers *.conf.sample que tu renommes en .conf.
Cela dit ton problème ne vient pas de là.
 
Hello,
Ce que tu peux tenter éventuellement :
- Stopper le container Swag
- Créer une nouvelle stack identique à la précédente sauf :
* container_name: swag2
* - /home/docker/appdata/swag2/config:/config

Ensuite, déployer cette nouvelle stack et regarder ce que ça raconte dans les logs.

Tu pourras toujours revenir en arrière en stoppant le container swag2 et en redémarrant le container swag.
 
  • J'aime
Réactions: pimo
Bonjour ok je vais essayer ça. Par contre il me faut un accès physique pour faire cette manip. Je la ferais demain soir et je te tiens au courant du résultat.
 
Bonsoir donc j'ai essayé la commande, mais derrière dans les logs il y avait un soucis de doublon de fichiers. Ça ma passablement enervé😡🤬🤬.
Donc solution radical, suppression du contenaire swag de la stack de l'image et des dossiers présent dans /home/docker/appdata/swag/config avec winscp. J'ai recréer la stack et reconfigurer les .conf "subdomain omv portainer filebrowser".
A première vue victoire le certificat est à jour 🥳🥳🥳
Maintenant je croise les doigts pour que le renouvellement automatique fonctionne correctement.

Je vous remercies tous pour vos conseils et votre aide.

PS: J’espère ne pas rouvrir se post dans deux mois :)
 
  • J'aime
Réactions: electroger
Hello !
Super nouvelle si ça fonctionne de nouveau ! J'imagine que si tu as recopié les fichiers de conf de ton ancien volume docker, ils ne sont pas à jour.
Je te conseille tout de même de les mettre à jour. Personnellement j'utilise VSCode pour faire ça, c'est simple et rapide.
Tu peux regarder cette vidéo qui présente très clairement la marche à suivre :