Certbot (letsencrypt) Bug with --dry-run

SYSTEM INFORMATION
OS type and version Ubuntu Linux 20.04.6
Usermin version 2.102
Virtualmin version 7.20.2
Theme version 21.20.7
Nginx version 1.18.0
Package updates All installed packages are up to date

If I run this:

virtualmin generate-letsencrypt-cert --domain testing-files.mydomain.com --staging

I got this response:

Checking hostnames for resolvability ..
.. all hostnames can be resolved

Requesting SSL certificate for testing-files.mydomain.com ..
.. failed : DNS-based validation failed : Renewing an existing certificate for testing-files.mydomain.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
You've asked to renew/replace a seemingly valid certificate with a test certificate (domains: testing-files.mydomain.com). We will not do that unless you use the --break-my-certs flag!
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.

This is very interessting, as the --break-my-cert doesn’t exist as parameter and just shows the help-page if used:

Unknown parameter --break-my-certs

See `virtualmin help generate-letsencrypt-cert` for more details and examples

Requests and installs a Let's Encrypt cert for a virtual server.

virtualmin generate-letsencrypt-cert --domain name
                                    [--host hostname]*
                                    [--default-hosts]
                                    [--renew]
                                    [--size bits]
                                    [--staging]
                                    [--check-first | --validate-first]
                                    [--skip-dns-check | --dns-check]
                                    [--web | --dns]
                                    [--rsa | --ec]
                                    [--server url]
                                    [--server-key id]
                                    [--server-hmac string]

How do I use it ?

As sometimes Domains throw errors while trying to renew the letsencrypt Certificate, and as letsencrypt has an delay for “to many failed authorizations”, I’ve created a “custom command” to pre-test a domain if anything goes right with it.

To have exactly the same environment “virtualmin” use, I prefer to use the

virtualmin generate-letsencrypt-cert

instead of the

certbot --nginx -d myDomain.com --dry-run

command.

So how can I do perform a dry-run for letsencrypt in virtualmin?

BTW: It also seems that the parameter --skip-dns-check don’t have any effect:

Are you mixing up virtualmin parameters with certbot parameters? I would guess that those certbot parameters are not known to virtualmin

That may be, but if so, it’s just because it’s no implemented in the right way in virtualmin.

As you see in my description I just trigger virtualmin to do it’s job.
If the request is incompatible with underlying certbot, virtualmin will need to adjust it’s command to satisfy the certbot-requirements and not just return the messages from certbot.