cron will only automate what can be done at a prompt.
Have you tried ./certbot renew -d ***.com --preferred-challenges dns certonly ?
As I typed that I thought of so many reasons why it would fail.
But it still should be tried and answered (thus learned) by you.
If you can’t get a command to complete properly at an unattended prompt how would cron help?
@rg305, your command is poorly structured because renew and certonly are both verbs and you can only use one verb.
@pedroiker, in general when you obtain certificates with --manual, they can’t be renewed with certbot renew because certbot renew is only able to perform unattended renewals, not interactive renewals. What I think @rg305 is getting at is that if the renewal process is interactive and requires human intervention, there is no reason to expect that it could be made to work from cron, which is an inherently non-interactive environment.
However, if you automate the DNS challenge using an appropriate DNS API plugin (so that Certbot is using a DNS provider API to complete the challenge rather than telling you to create the DNS entries yourself), certbot renewwill work for this certificate subsequently, including from cron, because the automated DNS challenge can then be performed with no human intervention.