Saving debug log to /var/log/letsencrypt/letsencrypt.log
Currently, the renew verb is capable of either renewing all installed certificates that are due to be renewed or renewing a single certificate specified by its name. If you would like to renew specific certificates by their domains, use the certonly command instead. The renew verb may provide other options for selecting certificates to renew in the future.
I have gone through some of the articles and identified that /etc/letsencrypt/cli.ini making the issue. But I don't have that file.
I mean how the validation goes for multiple domains when just ran ./certbot-auto renew command and generate single cert. For individual certs, it stores the document root of web server for the domains and user details at /etc/letsencrypt/renewal/domain_name.conf.
But for SAN certs there is no such kind of information available.
This is a distinction between using Certbot's --webroot and --manual.
When you use --webroot, you can specify a webroot location with -w and this is saved by Certbot. You can request a certificate for up to 100 different domains and you can use either the same webroot or different webroots. If you use different webroots via multiple -w options, they are all saved (using a configuration feature called webroot_map) so that they can be used for renewal.
When you use --manual with --manual-auth-hook, every aspect of the authentication challenge is the responsibility of the script that you specified (here, authenticator.pl) and not of Certbot. Certbot doesn't know what the authenticator hook script did in order to pass the challenges. From Certbot's perspective, maybe the authenticator hook script created the files itself in the local filesystem, or maybe it created them remotely via FTP, or maybe it called up a human being on the telephone and told the human being how to create the files...
So if you use --manual, then the question is how authenticator.pl knew which webroots to use; and if it did have this information when you obtained the certificate, why wouldn't it know when renewing it?
Yep, got it. authenticator.pl contact one more file that has the web root locations of the domains. Now I put the locations there and run the below command.
./certbot-auto renew --cert-name domain_name
Now I’m able to renew the certs. Thanks for the description.