If you’re using DNS validation, it’s trivial–you can get the cert on any machine, and once obtained, deploy it to the desired host.
Another way to skin this cat would be to script something to open up port 80 on Host B, obtain/renew the cert using certbot or acme.sh in standalone mode, and then close that port again.
Over the past two days I have been scouring the web for posts on how to configure multiple certs for postfix. What I thought was going to be as simple as 1,2,3 has been more like postfix oh no not me.
I'm not really sure if you already got the info but just in case... postfix doesn't support SNI, that means you can't use a cert covering domain1.tld, another cert covering domain2.tld, etc. but you can have 1 cert covering several domains (domain1.tld and domain2.tld and... etc.).
Found out yesterday that postfix does not support SNI which is one of the reason I am looking at LE for a multi-domain certificate to cover three domains.
Please note that for a mail server your certificate should cover only the domain names listed in MX records and the domains used for POP3/IMAP/SMTP access. It is not necessary for the certificate to contain all the domains that could follow the @ sign in the e-mails it receives.
Therefore DNS validation should only be necessary because you don’t want to open the ports required to use standalone mode, not just because your mail server is hosted separately from your main domain.
Yes, you must follow exactly the same procedure every 90 days (or less to be safe just in case something is not working as expected) but... is there no way to interact with your DNS provider using an API?, it is a pain to do that manually every 60-90 days.
If the LE validation process is fast then maybe I should consider temporally opening the http port during the process and closing once validated. Just hate fixing whats not broken.
Would be interesting to see an imap/pop/smtp validation method implemented. Maybe even an automated email challenge validation.