Suite aux offres OVH VPS 2026 j’ai décidé de migrer mon vieux Digital Ocean toujours bloqué sur une debian 12.
J’aime héberger mes différents services en utilisant des containers et en mettant un reverse proxy devant.
Sur mon ancienne configuration j’utilisais Traefik, pour changer un peu j’ai décidé que c’était l’occasion de tester Caddy.

J’ai cherché un peu de doc afin de le configurer correctement (notamment la partie wildcard avec dns challenge) et je n’ai pas trouvé d’article récent parlant de ce sujet, du coup je vous partage mon expérience en espérant pouvoir vous aider 🙂

Attention, j’utilise la version Docker de Caddy, mais vous pouvez tout de même suivre cet article si vous l’avez installé directement sur votre système !

Prérequis :

  • Avoir installé Caddy version 2 (>2.10.0 pour ne pas avoir à ajouter l’option auto_https prefer_wildcard plus de détails ici) via Docker ou directement.
  • Au niveau de votre provider dns avoir déjà redirigé vos domaines sur votre serveur, cela inclut votre domain de base + le wildcard de votre domain, donc par exemple avoir un enregistrement du type *.example.com IN A 1.1.1.1 (où 1.1.1.1 correspond à l’ip de votre serveur) si vous utilisez ovh vous pouvez vous référer à cette doc

Trouver le bon plugin

La première étape est de trouver son provider DNS dans le repository suivant : https://github.com/caddy-dns

J’utilise personnellement ovh. Pour la suite de l’article ce sera donc : https://github.com/caddy-dns/ovh

Installer le plugin

Il faut maintenant ajouter le plugin à Caddy :

Installation direct : xcaddy build --with github.com/caddy-dns/ovh

Pour Docker on va créer un dossier par exemple dans notre home : mkdir -p ~/caddy/config (le dossier config vous sera utile juste après)

Ensuite créer un Dockerfile avec le contenu suivant dans notre dossier ~/caddy :

FROM caddy:builder AS builder

RUN --mount=type=cache,target=/go/pkg/mod \
    --mount=type=cache,target=/root/.cache/go-build \
    xcaddy build \
    --with github.com/caddy-dns/ovh

FROM caddy:latest

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

Préparer le Caddyfile

Exemple de Caddyfile à utiliser (pour une installation via Docker le placer dans le path suivant : ~/caddy/config/Caddyfile il sera utilisé par le compose.yaml plus tard) :

{
    debug
}

*.example.com, example.com {
    tls {
        dns ovh {
            endpoint {$OVH_ENDPOINT}
            application_key {$OVH_APPLICATION_KEY}
            application_secret {$OVH_APPLICATION_SECRET}
            consumer_key {$OVH_CONSUMER_KEY}
        }
    }
    # default handle
    handle {
      respond "it works !"
    }
}

(n’oubliez pas de remplacer example.com par votre nom de domaine)

Les variables d’environnement nécessaires à la configuration d’OVH seront renseignées dans les chapitres suivants.

Attention, ici j’ai pris l’exemple de configurations pour ovh, veillez à la remplacer par celle de votre provider que vous trouverez dans le README du repository https://github.com/caddy-dns de votre provider.

Trouver les identifiants du provider OVH

Afin de trouver les informations requises par Let’s Encrypt pour communiquer et gérer nos enregistrements DNS OVH le README nous indique qu’il va falloir aller créer une application (avec accès API) à notre compte OVH.

La documentation Caddy nous redirige vers ce lien : https://github.com/libdns/ovh#authenticating

Qui ensuite nous mène ici : https://github.com/ovh/go-ovh#supported-apis

L’idée est de trouver quelle est notre OVH région afin de suivre le lien « Create script credentials (all keys at once) ».

La mienne étant Europe, je vais donc suivre https://eu.api.ovh.com/createToken/

Authentifiez-vous à votre compte OVH et vous devriez arriver sur cette page :

Formulaire ovh vide

Vous allez remplir le formulaire de la manière suivante :

Formulaire ovh rempli

Si vous avez un doute référez vous à la page que j’ai indiqué précédemment : https://github.com/libdns/ovh#authenticating . Je vous conseille de suivre la configuration pour un simple domaine, mais si vous avez vocation à laisser votre Caddy gérer plusieurs domaines différents, alors vous devriez suivre la configuration pour multiple domaines !

Une fois enregistré, n’oubliez pas de sauvegarder les informations suivantes (Attention, vous ne pourrez plus accéder à ces informations par la suite) :

  • application key
  • application secret
  • consumer key

Nous allons les utiliser dès maintenant !

Ajouter les identifiants du provider OVH

Si vous avez installé Caddy directement alors modifiez les info dans votre Caddyfile.

Si vous avez utilisé Docker je vous conseille de fournir ces infos via un compose.yaml :

services:
  caddy:
    build: .
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./conf:/etc/caddy
      - ./site:/srv
      - caddy_data:/data
      - caddy_config:/config
    environment:
      OVH_ENDPOINT: "ovh-eu"
      OVH_APPLICATION_KEY: "votre-application-key"
      OVH_APPLICATION_SECRET: "votre-application-secret"
      OVH_CONSUMER_KEY: "votre-consumer-key"

volumes:
  caddy_data:
  caddy_config:

Conclusion

Le moment de vérité est arrivé !
Relancez Caddy pour qu’il prenne en compte votre nouvelle configuration

Sans Docker :
sudo systemctl restart caddy

Avec Docker :
sudo docker compose up -d && sudo docker compose logs -f

Rendez-vous sur votre nom de domaine et vous devriez voir la phrase « it works ! » ainsi qu’un certificat tls !

Si vous voulez tester un sous domain, rien de plus simple.

Ajoutez le bloc suivant à votre Caddyfile (en modifiant bien subdomain.example.com par votre nom de domaine et le sous domain désiré)

@subdomain host subdomain.example.com
handle @subdomain: {
  respond "subdomain works !"
}

Dans le bloc précédemment ajouté, entre le bloc tls et l’instruction handle

Relancez Caddy via les commandes suivantes :

Sans Docker :
sudo systemctl reload caddy

Avec Docker :
sudo docker compose exec -w /etc/caddy caddy caddy reload

Si vous avez une erreur sur le formattage de votre fichier Caddy vous pouvez utiliser la commande suivante :
sudo docker compose exec -w /etc/caddy caddy caddy fmt --override

Puis reload Caddy.

Et allez tester votre sous-domaine 🙂

Have fun !

Liens utiles

Caddy, OVH et la quête du certificat SSL : une migration qui fait grincer des dents

Entre promesses de simplicité et réalité chaotique, la migration vers Caddy pour gérer vos certificats SSL pourrait bien être un parcours du combattant.

Récemment, un utilisateur a décidé de quitter son ancien ami, Digital Ocean, pour un OVH VPS flambant neuf. L’objectif ? Tester Caddy, un reverse proxy qui promet monts et merveilles, tout en se débarrassant des tracas de Traefik. Mais derrière cette façade séduisante, se cache une réalité bien plus complexe.

Ce qui se passe réellement

Notre protagoniste, après avoir installé Caddy version 2.10.0, se retrouve face à un défi : configurer un wildcard avec DNS challenge. En fouillant dans la documentation, il réalise qu’il n’est pas le seul à se heurter à ce mur. La communauté semble avoir déserté ce sujet, laissant les utilisateurs dans l’angoisse de la configuration.

Pourquoi cela dérange

La promesse d’une installation simple et rapide se heurte à la réalité d’une documentation lacunaire. Au lieu de se concentrer sur l’optimisation de ses services, notre utilisateur doit jongler avec des configurations complexes et des identifiants API d’OVH. Une situation qui rappelle étrangement les promesses des politiques autoritaires : des discours enflammés, mais des résultats souvent décevants.

Ce que cela implique concrètement

La nécessité de rediriger les domaines et de configurer les identifiants API ne fait qu’ajouter une couche de complexité. Les utilisateurs se retrouvent à devoir naviguer dans un labyrinthe de configurations, alors que l’objectif initial était de simplifier leur vie numérique. Une ironie qui ne manquera pas de faire sourire ceux qui ont déjà goûté aux promesses non tenues des géants technologiques.

Lecture satirique

Il est fascinant de voir comment des entreprises comme OVH, qui se présentent comme des champions de la simplicité, peuvent plonger leurs utilisateurs dans un océan de complexité. Cela rappelle les discours politiques où l’on promet un avenir radieux, mais où la réalité est souvent teintée de désillusion. La migration vers Caddy, loin d’être une promenade de santé, devient une véritable épreuve de force.

Effet miroir international

À l’échelle mondiale, cette situation n’est pas sans rappeler les dérives autoritaires que l’on observe dans des pays comme la Russie ou les États-Unis. Les promesses de liberté et de simplicité se heurtent souvent à des réalités bien plus sombres. Caddy, OVH, et la quête du certificat SSL deviennent ainsi le reflet d’un système où la complexité et l’opacité règnent en maîtres.

À quoi s’attendre

Si cette tendance se poursuit, les utilisateurs pourraient bien se retrouver piégés dans un cycle sans fin de migrations et de configurations. La promesse d’une solution simple pourrait se transformer en un cauchemar technologique, où chaque mise à jour apporte son lot de complications.

Sources

Source : blog.eleven-labs.com

Blog Eleven Labs - Configurer un certificat SSL wildcard avec Caddy 2
Visuel — Source : blog.eleven-labs.com
Partager ici :
Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire