Réponse mise à jour (voir la réponse originale ci-dessous)
Dans ma réponse d'origine, je me suis concentré sur le fait que le script que vous avez fourni n'est pas requis lors de l'utilisation de la renewcommande. Cependant, je ne me suis pas assuré que la renewcommande est réellement applicable dans ce scénario.
Comme cdhowie et bobpaul dans l'état des commentaires: certbot renewest un mode non interactif qui - en conjonction avec le défi dns - vous oblige à fournir un script via le --manual-auth-hookparamètre. Ce script doit être capable de créer un TXTenregistrement. Vous pouvez également fournir un autre script à nettoyer ensuite via le --manual-cleanup-hookparamètre.
Si vous fournissez ces paramètres, l'ensemble du processus s'exécutera automatiquement sans aucune interaction.
Si vous ne fournissez pas ces paramètres, certbot échouera:
/opt/certbot # certbot renew --force-renewal
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/foobar.w9f.de.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)
Si vous souhaitez renouveler vos certificats via le mode manuel, vous devez réexécuter les commandes que vous avez utilisées pour acquérir les certificats. Dans ce cas, votre script est une bonne option car la certonlycommande ne regarde pas les certificats / configuration actuels et vous oblige à la place à fournir les noms de domaine via le -dparamètre ou en mode interactif.
lorsque j'exécute "certbot renouvellement", est-ce qu'il les renouvellera tous automatiquement sans utiliser mon script?
TL; DR: Oui, ça devrait.
Jetons un œil à la documentation de certbot :
Depuis la version 0.10.0, Certbot prend en charge une action de renouvellement pour vérifier l'expiration imminente de tous les certificats installés et tenter de les renouveler. La forme la plus simple est tout simplement
renouvellement de certbot
Jusqu'ici tout va bien.
Cette commande tente de renouveler tous les certificats précédemment obtenus qui expirent dans moins de 30 jours.
Ceci devrait répondre à votre question. Attention: je ne certbotsais pas dans quelle mesure peut gérer les situations où vous déplacez les certificats vers différents répertoires.
Plus loin dans le même paragraphe:
Le même plugin et les mêmes options que ceux utilisés au moment de l'émission du certificat seront utilisés pour la tentative de renouvellement, sauf si vous spécifiez d'autres plugins ou options. Contrairement à certonly, renewagit sur plusieurs certificats et prend toujours en compte si chacun est proche de l'expiration.
Donc oui; certbotdevrait renouveler tous vos certificats sans l'aide de votre script.
Comment puis-je réellement créer un nouveau certificat en utilisant le défi DNS pour commencer?
Quel est le problème avec la commande que vous avez publiée au début de votre message?
certbot -d example.com --manual --preferred-challenges dns certonlyva acquérir un certificat pour example.com en utilisant le défi dns.
Les étapes pour créer un certificat sont les suivantes:
- Exécutez la
certbotcommande que vous avez publiée
- Attendez que la commande vous montre un enregistrement DNS TXT
- Créez cet enregistrement TXT
- Continuez la
certbotcommande
- Obtenez un certificat pour le domaine spécifié
- Supprimez l'enregistrement TXT (car vous n'en avez besoin que pour la création et un nouveau pour le renouvellement)
Si vous souhaitez automatiser ce processus complet, vous voudrez peut-être jeter un œil à un outil comme lego qui prend en charge quelques fournisseurs DNS .