How to use Caddy for certificates only, without binding to ports?

There’s no way to do that with a Caddyfile. Use a JSON config for that.

You can adapt your config to JSON, and then just delete the whole http app. Only the tls app is needed.