Table des matières

Mise en place de certificats SSL Let's Encrypt wildcard avec API Gandi LiveDNS

Le titre parle de lui même. En validation DNS-01 Let's Encrypt a besoin de mise à jour des LiveDNS chez Gandi. Voici les scripts et commandes pour automatiser le processus.

Prérequis

Scripts

Script pour déclarer votre clé API Gandi

#!/bin/bash
APIKEY="XXXXXXXXXXXXXXXXXXXXXXXXXXX"

Script Auth pour mettre à jour le live DNS

#!/bin/bash

# Appel clé API
source ./gandi-api-key.sh

API="https://dns.api.gandi.net/api/v5/"
DOMAIN=$CERTBOT_DOMAIN
RECORD="_acme-challenge"


#Debug
echo "DOMAIN :" $CERTBOT_DOMAIN
echo "VALIDATION :" $CERTBOT_VALIDATION

# Données à envoyer        
DATA='{"rrset_values": ["'$CERTBOT_VALIDATION'"]}'


# Appel API
curl -s -XPUT -d "$DATA" \
    -H"X-Api-Key: $APIKEY" \
    -H"Content-Type: application/json" \
    "$API/domains/$DOMAIN/records/$RECORD/TXT"

# Sleep pour propager au Gandi LiveDNS
sleep 60

Utilisation

#!/bin/bash
certbot-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual-public-ip-logging-ok --preferred-challenges dns-01 --manual-auth-hook ./gandi-auth.sh --manual -d *.mondomaine.net -d mondomaine.net

Rajoutez le paramètre suivant pour effectuer d’abord vos tests.

--dry-run

Ces scripts ne gèrent aucunement les erreurs. Utilisation quick and dirty uniquement. A vos risques et périls.

Ne déplacez pas le script d'auth, le renew automatique de certbot fait appel à lui.

Sources

doc.livedns.gandi.net