Aller au contenu

[TUTO] Certificat Let's Encrypt avec acme.sh & api Ovh en Docker (DSM6/7) (Update 07/09/22)


Messages recommandés

  • 2 semaines après...
Posté(e) (modifié)
Le 11/10/2020 à 12:58, Einsteinium a dit :

D) Création du certificat :

Avec le planificateur de tâche en exécution unique (cf point 2C) ou en ssh (root) en remplaçant "mydomain.com" :

docker exec Acme sh -c "acme.sh --issue --keylength 4096 -d 'mydomain.com' -d '*.mydomain.com' --dns dns_ovh"

Il n'y a rien à détailler pour expliquer cette commande, le keylenght peut être, on double la valeur par défaut qui est aujourd'hui considérée comme faible à 2048.

/!\ Renouvellement automatique du certificat sans action de votre part

J'ai un petit soucis là :

Citation

:~# docker exec Acme sh -c "acme.sh --issue --keylength 4096 -d 'ndd.tld' -d '*.ndd.tld' --dns dns_ovh"
[Fri Aug 26 12:09:40 UTC 2022] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Fri Aug 26 12:09:40 UTC 2022] Can not init api for: https://acme-v02.api.letsencrypt.org/directory.
[Fri Aug 26 12:09:40 UTC 2022] Sleep 10 and retry.
 

EDIT : 

Bon ce sont mes règles de pare feu qui déconnent.

Modifié par _DR64_
Posté(e)

J'ai un problème à la dernière commande :

[Fri Aug 26 13:23:24 UTC 2022] Logging into 172.17.0.1:5000
[Fri Aug 26 13:23:25 UTC 2022] Getting certificates in Synology DSM
[Fri Aug 26 13:23:25 UTC 2022] Unable to find certificate: Certificat ndd.tld and $SYNO_Create is not set
[Fri Aug 26 13:23:25 UTC 2022] Error deploy for domain:ndd.tld
[Fri Aug 26 13:23:25 UTC 2022] Deploy error.

 

  • 2 semaines après...
Posté(e)

Bonjour,

J'ai appliqué ce TUTO et créé un certificat LE sans problèmes.

Il y a juste un truc qui m'interpelle : je ne peux consulter le fichier de logs.

J'ai eu ces messages lors de de la création du conteneur puis lors du déploiement.

Citation

root@Monnas:/volume1/docker/Acme# docker exec Acme sh -c "acme.sh --issue --keylength 4096 -d 'ndd.tld' -d '*.ndd.tld' --dns dns_ovh"
/usr/local/bin/acme.sh: /acme.sh/account.conf: line 1: LOG_FILE=/acme.sh/acme.sh.log: not found
/usr/local/bin/acme.sh: /acme.sh/account.conf: line 1: LOG_FILE=/acme.sh/acme.sh.log: not found

[Mon Sep  5 14:16:01 UTC 2022] Using CA: https://acme-v02.api.letsencrypt.org/directory
/usr/local/bin/acme.sh: /acme.sh/account.conf: line 1: LOG_FILE=/acme.sh/acme.sh.log: not found
/usr/local/bin/acme.sh: /acme.sh/account.conf: line 1: LOG_FILE=/acme.sh/acme.sh.log: not found

[Mon Sep  5 14:16:01 UTC 2022] Create account key ok.
[Mon Sep  5 14:16:01 UTC 2022] Registering account: https://acme-v02.api.letsencrypt.org/directory
[Mon Sep  5 14:16:02 UTC 2022] Registered

......

 

Citation

root@Monnas:/volume1/docker/Acme# docker exec Acme sh -c "acme.sh --deploy -d 'ndd.tld' --deploy-hook synology_dsm"
/usr/local/bin/acme.sh: /acme.sh/account.conf: line 1: LOG_FILE=/acme.sh/acme.sh.log: not found
/usr/local/bin/acme.sh: /acme.sh/account.conf: line 1: LOG_FILE=/acme.sh/acme.sh.log: not found

[Mon Sep  5 14:43:11 UTC 2022] Logging into 172.17.0.1:5000
[Mon Sep  5 14:43:11 UTC 2022] Getting certificates in Synology DSM
[Mon Sep  5 14:43:11 UTC 2022] Generate form POST request
[Mon Sep  5 14:43:11 UTC 2022] Upload certificate to the Synology DSM
[Mon Sep  5 14:43:11 UTC 2022] http services were NOT restarted
[Mon Sep  5 14:43:11 UTC 2022] Success

J'ai pourtant bien la bonne ligne dans mon account.conf

Citation

LOG_FILE="/acme.sh/acme.sh.log"

Si vous avez des idées à me suggérer, elles seront les bien venues...

Cordialement

oracle7😉

Posté(e) (modifié)

Bonjour,

J'ai redémarré le conteneur mais pareil.

Mon répertoire partagé 'docker' et le dossier 'Acme' sont bien en root:root rwxr-xr-x (0755); Idem le dossier Acme.sh dans le conteneur.

QR1nToq.png

Du coup je ne comprends pas puisque le certificat a bien été généré et les dossiers correspondants crées. Bizarre ...

Cordialement

oracle7😉

Modifié par oracle7
Posté(e)

Créer le fichier log manuellement et relance le doc pour voir s’il en prends les droits et écrit bien dedans, peu être un bug de la dernière version sortie il y a 8 jours, fait un ticket sur le github pour le signalé au développeur.

Posté(e)

Bonjour,

Donc :

  • Fichier acme.sh.log créé manuellement avec les bons droits (root:root 0755).
  • Conteneur Acme arrêté puis relancé (4x).
  • Citation
    • root@Monnas:~# docker logs -f Acme
      stop
      stop
      stop
      stop
      ^C
      root@Monnas:~#
  • Mais le fichier acme.sh.log reste vide !

Cordialement

oracle7😉

Posté(e)

Je viens de regardé, aucune écriture dans le log hormis lors de génération de certificat ou du test journalier de renouvellement, donc tu le verras demain matin si c’est bon. (Il n’y a pas de raison que non)

Par contre fait un ticket concernant l’échec de création sur le github.

Posté(e)

Je fais volontairement un H.S. sur ce sujet car il y a toujours un barbu derrière beaucoup de technologies très pratiques et mondialement utilisées.

Let's Encrypt a été créé par 3 gus dont Peter ECKERSLEY (de l'EFF), décédé le 2 septembre dernier à l'âge de 43 ans.

Il rejoint donc le panthéon des oubliés de l'IT dont le plus mal reconnu doit être Dennis RITCHIE (à qui l'on doit notamment Unix, le langage C, et quelques autres broutilles sur lesquelles repose la quasi-totalité des systèmes modernes), décédé le 12 octobre 2011, une semaine après le prodige du marketing IT Steve JOBS. Tout le monde se souvient lequel des deux a été le plus médiatisé à l'époque

Posté(e) (modifié)

Bonjour,

@Einsteinium

Il y a 3 heures, Einsteinium a dit :

Par contre fait un ticket concernant l’échec de création sur le github.

Désolé, je ne sais pas faire, mais si tu veux bien t'en charger j'apprécierai.

Sinon accessoirement et pour info, pas besoin de passer par des fichiers ".pem" pour recharger les fichiers du certificat. Cela marche très bien directement avec les fichiers ndd.tld.key, ndd.tld.cer et ca.cer. Test effectué sur un second NAS et sur mon RT2600ac.

 

@MilesTEG1

Le 17/05/2021 à 10:48, MilesTEG1 a dit :

C'est quand même possible d'utiliser le label de watchtower ?
Et corolaire : peut-on utiliser un fichier docker-compose.yml pour créer le conteneur ? (dans lequel je pourrais mettre le label de watchtower).

Finalement tu l'as fais ? Si oui tu peut partager ce docker-compose (j'ai la flemme de le créer 🤣🤪).Merci d'avance.

@Jeff777 MERCI bien le bonjour à toi aussi. Eh oui on ne fait pas toujours ce que l'on veux et une déconnexion (forcée) fait du bien même si après il faut reconnecter les neuronnes et raccrocher les wagons au train ... ce qui n'est pas évident 🥴

Cordialement

oracle7😉

 

 

 

Modifié par oracle7
Posté(e)
Il y a 2 heures, oracle7 a dit :

Sinon accessoirement et pour info, pas besoin de passer par des fichiers ".pem" pour recharger les fichiers du certificat. Cela marche très bien directement avec les fichiers ndd.tld.key, ndd.tld.cer et ca.cer. Test effectué sur un second NAS et sur mon RT2600ac.

Pour dsm 7, mais avec dsm 6 cela coince et avant le dernier update majeure des RT c’était pareil pour eux, je modifierais le tutoriel.

Au passage depuis je suis passé en portainer/watchtower pour tous mes dockers.

Je verrais à modifier mes tutoriels en conséquence.

Posté(e) (modifié)

Bonjour,

Il y a 2 heures, Einsteinium a dit :

Pour dsm 7, mais avec dsm 6 cela coince

C'est étonnant car chez moi j'ai toujours procédé de cette façon sous DSM6 avec les fichiers de mes certificats et je n'ai jamais eut aucun problème que ce soit sous DSM ou sur le RT en SRM 1.2.x. Mais bon ...

Bonne nouvelle pour l'utilisation de watchtower ! 🤗

Cordialement

oracle7😉

Modifié par oracle7
Posté(e)
Il y a 5 heures, oracle7 a dit :

Finalement tu l'as fais ? Si oui tu peut partager ce docker-compose (j'ai la flemme de le créer 🤣🤪).Merci d'avance.

Salut @oracle7,

hé beh non je n’ai pas fait de docker compose…

je crois me souvenir que ce n’est pas possible avec acme parce qu’on le lance avec des commandes particulières. Ou bien c’est moi qui ne sait juste pas faire 🤪 

Posté(e)
Le 06/09/2022 à 20:14, oracle7 a dit :

Bonjour,

C'est étonnant car chez moi j'ai toujours procédé de cette façon sous DSM6 avec les fichiers de mes certificats et je n'ai jamais eut aucun problème que ce soit sous DSM ou sur le RT en SRM 1.2.x. Mais bon ...

Bonne nouvelle pour l'utilisation de watchtower ! 🤗

Cordialement

oracle7😉

Je viens d’aller voir mes notes, cela date de la preview de dsm 7 le tutoriel, et srm était en branche 1.2.4, il y avait une erreur d’importation de certificat les désignants invalides, d’où le script de conversion.

Depuis le temps le script renouvelle sous dsm 7 et le rt est bien loin, donc du coup merci pour le retour, c’est un bon point et une étape en moins à faire.

@MilesTEG1 on lance des commandes particulière oui, mais en docker exec

voici le docker composé que j’utilise :

version: "2.1"
services:
  acme:
    cpu_shares: 10
    mem_limit: 128M
    container_name: Acme
    network_mode: bridge
    labels:
      - com.centurylinklabs.watchtower.enable=true
    volumes:
      - /volume1/docker/Acme:/acme.sh:rw
    restart: unless-stopped
    image: neilpang/acme.sh:latest
    command: daemon

Désolé pour la mise en forme je suis sur mobile.

  • Einsteinium a modifié le titre en [TUTO] Certificat Let's Encrypt avec acme.sh & api Ovh en Docker (DSM6/7) (Update 07/09/22)
Posté(e) (modifié)

Bonjour,

Merci pour le docker-compose. Avec lui plus besoin de la tâche planifiée puisque watchtower fait le boulot de mise à jour de l'image du conteneur. Super !!!🤗

Cordialement

oracle7😉

Modifié par oracle7
Posté(e)

Ha cool 🙂

Je ne savais pas qu'on pouvait avoir un docker-compose pour ACME 😄

Je vais m'empresser de changer ça 😉

On est d'accord que ça va remplacer ce script :

# Script de création du conteneur Acme
bash /volume1/docker/Acme/acme_2C-quotidien.sh

Par contre, avec le docker-compose, aura-t-on le compte rendu du script en email ?
Car le script permet d'avoir la sortie (log) de ce qu'il fait.

edit : bon alors, en fait, la sortie me paraît pas si utile que ça 😅

Voilà le mail reçu le WE dernier :
 

Tâche : acme_2C-quotidien.sh
Heure de début : Sun, 04 Sep 2022 06:10:01 GMT
Heure d'arrêt : Sun, 04 Sep 2022 06:10:44 GMT
État actuel : 0 (Normal)
Sortie/erreur standard :
06:10:03 - Script de création du conteneur Acme pour créer le certificat wildcard
06:10:03 - Exécution des commandes...
latest: Pulling from neilpang/acme.sh
9621f1afde84: Already exists
c08f2e5ca818: Pulling fs layer
1f7fbf3e73c9: Pulling fs layer
8e65c47786df: Pulling fs layer
d6575f00820b: Pulling fs layer
6e98a4c5eaed: Pulling fs layer
b3ef15cd4c12: Pulling fs layer
d6575f00820b: Waiting
6e98a4c5eaed: Waiting
b3ef15cd4c12: Waiting
1f7fbf3e73c9: Verifying Checksum
1f7fbf3e73c9: Download complete
c08f2e5ca818: Verifying Checksum
c08f2e5ca818: Download complete
8e65c47786df: Download complete
6e98a4c5eaed: Verifying Checksum
6e98a4c5eaed: Download complete
d6 575f00820b: Verifying Checksum
d6575f00820b: Download complete
b3ef15cd4c12: Verifying Checksum
b3ef15cd4c12: Download complete
c08f2e5ca818: Pull complete
1f7fbf3e73c9: Pull complete
8e65c47786df: Pull complete
d6575f00820b: Pull complete
6e98a4c5eaed: Pull complete
b3ef15cd4c12: Pull complete
Digest: sha256:16c3e4406aa52c6fdfb507ad5f34a89e35b4aa4eb4719345d22b3f660be7f4f0
Status: Downloaded newer image for neilpang/acme.sh:latest
docker.io/neilpang/acme.sh:latest
Acme
Acme
Deleted Images:
untagged: neilpang/acme.sh@sha256:2932edfaecc6bde20b8f0a9a791413d9315a907f70992725680a00f8208674e3
deleted: sha256:94c6035db74bdb5281a14b554b4013f20b7db718ec71bb2c933ffbe0e82e0b3a
deleted: sha256:db71e54e57f7561eee36004d9cdf78d75b3c127140487ecc3139ca1ef6700780
deleted: sha256:0576abc1558c033f0e70c3ae5cf2c1157d83b62dbe045adc847de9eaad97618c
deleted: sha256:aa044340d4d2214434235d706a8249b2fc3c961a635bef84a43ec8409d2576ce
deleted: sha256: 8ff2a8af8de7b1b880dbf92c0c82379bc28b9f9f2fe1987ef5b4825ef84eda2c
deleted: sha256:5b76d5f5201ab6edba838579b9a2313f06a86f5499beb5290b2325286af22bc2
deleted: sha256:a9386efc804c45c12f09e55cfe52b46e6f5e08cefa00cb9d8ba845b15eb59a83
untagged: metabase/metabase@sha256:325d40c009f087f6c73852297c17e255202154caae4a05d59a6c3cb79158b48a
deleted: sha256:d8eac99291f975051850b0ba3b8f5a2905fb0be138c9029d540ad96c586a9e23

Total reclaimed space: 22.97MB
573dc8bab9aaee99c60bb217e0114c33ce6f8648d880f53d10fee2d2ce9ff566
06:10:44 - Script de création du conteneur terminé

 

Bon oublions ma demande alors ^^

Par contre, y a moyen d'avoir une notification quand le script se lance pour renouveler le certificat ?

Posté(e)

@MilesTEG1

Bonjour,

Il y a 2 heures, MilesTEG1 a dit :

network_mode: acme

Sauf erreur de ma part, par défaut comme ce n'est pas précisé c'est un réseau de type bridge nommé acme.

Cela dit, perso j'ai préféré créer le mien. Ci-après mon docker-compose :

#
# Doc de Acme.sh : https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide
#                  https://github.com/acmesh-official/acme.sh/wiki/deployhooks#20-deploy-the-cert-into-synology-dsm
#                  https://github.com/acmesh-official/acme.sh
#
# Depot GitHub : https://github.com/acmesh-official/acme.sh/wiki/Run-acme.sh-in-docker
#
#---
version: "3"

services:
    acme:
        image: neilpang/acme.sh:latest
        container_name: Acme
        restart: unless-stopped
        mac_address: d2:ca:ab:cd:18:02
        networks:
            synology-network:
                ipv4_address: 172.18.0.2
        labels:
          - com.centurylinklabs.watchtower.enable=true
        cpu_shares: 10
        mem_limit: 128M
          # Exécutez acme.sh en tant que démon docker, afin qu'il puisse gérer automatiquement la tâche cron de renouvellement.
        command: daemon
        volumes:
            - /volume1/docker/Acme:/acme.sh:rw
networks:
    synology-network:
        external: true

Et aucun problème cela marche du feu de dieu ...

Cordialement

oracle7😉

Posté(e)
Il y a 4 heures, MilesTEG1 a dit :

@Einsteinium

C'est quoi comme network_mode ?

network_mode: acme

Je pensais que ça ne pouvait être que : bridge, host, macvlan

Aïe excuse-moi… je vais modifier cela, les Docker peuvent communiqués entre eux s’ils sont dans le même bridge… Donc je les isoles par groupe dans des bridges séparés.

Tu vas dans l’interface graphique de Docker, réseau, Ajouter puis :

nom de réseau : acme (minuscule, pas de caractère)

niveau ipv4 tu coches utiliser la configuration manuel, puis :

sous réseau : 172.18.0.0/16

passerelle : 172.18.0.1

Tu valides et c’est bon, j’ai pris 172.18 dans l’exemple, le bridge étant en 172.17

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.