Ce guide montre comment installer un certificat SSL ACME sur TrueNAS à l’aide d’un hôte externe et de l’EAB (External Account Binding). Il est compatible avec TrueNAS CORE et TrueNAS SCALE.

TrueNAS dispose d’un support ACME natif, mais uniquement pour Let’s Encrypt grâce à son intégration DNS-01. Si vous souhaitez utiliser un fournisseur ACME commercial (Sectigo, DigiCert, etc.) avec ACME + EAB, vous devez générer et renouveler votre certificat en externe à l’ aide d’un client ACME tel que acme.sh, puis le déployer dans TrueNAS.
Avant de commencer
Voici ce dont vous aurez besoin :
- Un nom de domaine pointant vers l’IP publique de votre TrueNAS (par exemple, nas.example.com)
- TrueNAS CORE 13.x ou TrueNAS SCALE 23.x+.
- Une machine Linux/BSD externe, un VPS ou un serveur domestique (pour exécuter acme.sh)
- URL de l’annuaire ACME, ID de la clé EAB et HMAC EAB de votre AC commerciale
- Accès SSH à TrueNAS si vous envisagez d’automatiser la synchronisation
Note: TrueNAS ne prend PAS en charge les fournisseurs ACME arbitraires dans son interface utilisateur. Toute automatisation commerciale d’ACME doit se faire en dehors de TrueNAS.
Étape 1 : Installer acme.sh sur votre hôte externe
Cette machine traitera l’enregistrement, l’émission et le renouvellement des comptes ACME.
Exécutez :
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version
Si la version s’imprime correctement, tout va bien.
Étape 2 : Enregistrez votre compte ACME auprès de votre AC commerciale (ACME + EAB)
Votre tableau de bord CA vous fournira
- ID clé de l’agrile du frêne
- EAB Clé HMAC
- URL de l’annuaire ACME
Enregistrez votre compte ACME :
acme.sh --register-account \
--server https://acme.yourca.com/v2/acme \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--accountemail [email protected]
Remplacez les valeurs par les vôtres. Vous n’exécutez cette opération qu’une seule fois.
Étape 3 : Délivrer le certificat (validation DNS-01 requise)
TrueNAS est presque toujours derrière un NAT, la validation DNS est donc la plus sûre.
Voici un exemple de DNS manuel :
acme.sh --issue \
-d nas.example.com \
--dns dns_manual \
--server https://acme.yourca.com/v2/acme
acme.sh vous demandera de créer un enregistrement TXT :
_acme-challenge.nas.example.com TXT <token>
Créez l’enregistrement TXT dans votre gestionnaire DNS et attendez la propagation.
Vérifiez la propagation :
dig TXT _acme-challenge.nas.example.com +short
Une fois que le jeton apparaît, exécutez à nouveau la même commande et acme.sh finira d’émettre le certificat. Vos fichiers seront enregistrés dans ~/.acme.sh/nas.example.com/.
A l’intérieur, vous trouverez
- fullchain.cer: certificat du serveur + intermédiaire
- nas.example.com.key: clé privée
- ca.cer : Chaîne CA (si elle est fournie séparément)
Étape 4 : Importer le certificat dans TrueNAS
- Allez à : TrueNAS UI > Système > Certificats
- Cliquez sur Ajouter et sélectionnez Importer un certificat
- Téléchargez vos fichiers de certificats et cliquez sur Enregistrer
Attribuez le certificat à vos services :
- Interface utilisateur Web
- Services SMB / NFS (le cas échéant)
- API d’intergiciels
- Proxy inversés ou applications utilisant HTTPS (TrueNAS SCALE)
Étape 5 : Automatiser le renouvellement et le déploiement
TrueNAS n’ extrait pas automatiquement les certificats. Vous devez pousser les certificats renouvelés dans TrueNAS.
1. Créez un script de déploiement
Sur votre hôte ACME externe, créez /usr/local/bin/truenas-deploy.sh :
Remarque: ce script ne fonctionne que si TrueNAS autorise l’accès SSH avec un utilisateur autorisé à exécuter midclt. Il télécharge la nouvelle clé et le nouveau certificat sur
#!/bin/bash
DOMAIN="nas.example.com"
NAS_USER="root"
NAS_HOST="truenas.local"
CERT_PATH="$HOME/.acme.sh/$DOMAIN"
KEY="$CERT_PATH/$DOMAIN.key"
CERT="$CERT_PATH/fullchain.cer"
scp "$KEY" "$NAS_USER@$NAS_HOST:/tmp/key.key"
scp "$CERT" "$NAS_USER@$NAS_HOST:/tmp/cert.cer"
ssh "$NAS_USER@$NAS_HOST" <<EOF
midclt call certificate.update '{"certificate": "custom", "csr": null, "privatekey": "$(cat /tmp/key.key)", "certificate": "$(cat /tmp/cert.cer)"}'
EOF
Rendez-le exécutable :
chmod +x /usr/local/bin/truenas-deploy.sh
2. Ajouter un crochet de renouvellement
Ajoutez un crochet de déploiement dans acme.sh :
acme.sh --deploy-hook truenas-deploy \
-d nas.example.com
Ou ajoutez ceci dans ~/.acme.sh/deploy/truenas-deploy.sh.
3. Laissez acme.sh s’occuper de tout
Voici ce que fait automatiquement acme.sh :
- Vérifie quotidiennement les renouvellements
- Renouvelle le certificat
- Déclenche votre script de déploiement
- Pousse les certificats mis à jour dans TrueNAS
- Applique les changements en silence
Une fois configuré, vous n’avez plus à toucher à TrueNAS pour les renouvellements de certificats.
Questions courantes
Si vous configurez l’automatisation ACME sur TrueNAS pour la première fois, ces réponses rapides couvrent les problèmes que les utilisateurs rencontrent le plus souvent.
Puis-je utiliser un certificat pour l’interface graphique TrueNAS et d’autres services (portails SMB, NFS, iSCSI) ?
Oui. Une fois que vous avez importé le certificat dans Système > Certificats, vous pouvez sélectionner le même certificat pour l’interface web et pour tout service qui expose HTTPS (interface web, API, éventuellement proxy inverse/HAProxy si vous l’utilisez). Vous n’avez pas besoin de certificats distincts pour chaque service, sauf si vous voulez des noms d’hôtes différents.
Mon NAS est derrière un CGNAT ou un double NAT. Puis-je encore utiliser ACME ?
Oui, mais vous devez utiliser la validation DNS-01. HTTP-01 ne fonctionnera pas parce que le serveur ACME ne peut pas atteindre votre NAS sur le port 80. Avec DNS-01, l’autorité de certification ne vérifie que votre enregistrement TXT à _acme-challenge.yourdomain.com, et ne se préoccupe donc pas de l’emplacement réel du NAS.
Que se passe-t-il si acme.sh renouvelle le certificat mais que j’oublie de le réimporter dans TrueNAS ?
TrueNAS continuera à utiliser l’ancien certificat que vous avez importé la dernière fois. Les fichiers renouvelés restent sur votre hôte externe jusqu’à ce que vous les téléchargiez à nouveau (ou que votre script/API s’en charge).
Votre site fonctionnera toujours, mais les navigateurs finiront par vous avertir que votre certificat a expiré. C’est pourquoi il vaut la peine d’écrire un script pour la réimportation ou de mettre en place un rappel à l’approche de la date d’expiration.
Puis-je utiliser un certificat de type wildcard (comme *.example.com) avec TrueNAS ?
Oui. Tant que la clé privée et le certificat correspondent, TrueNAS ne se préoccupe pas de savoir s’il s’agit d’un wildcard ou d’un certificat à hôte unique. Vous devez toujours émettre le wildcard via DNS-01 dans acme.sh, puis importer fullchain.cer + *.example.com.key dans TrueNAS. Faites attention à l’endroit où vous réutilisez cette clé. Un certificat wildcard donne un contrôle total sur tous les sous-domaines qu’il couvre.
Derniers mots
Ce flux de travail vous offre un moyen stable et fiable d’installer un certificat ACME sur TrueNAS sans avoir à lutter contre le système. Votre hôte externe s’occupe de l’émission, du renouvellement et de la gestion du certificat, tandis que TrueNAS reçoit simplement des importations propres chaque fois que les fichiers sont mis à jour.
Une fois le processus mis en place, tout se déroule tranquillement en arrière-plan, et vous n’intervenez que si vous souhaitez ajuster les scripts ou modifier les informations d’identification.
Economisez 10% sur les certificats SSL en commandant aujourd’hui!
Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10

