I had similar issue, in my case I created dockers with self generated cert by mailcow. Then I added custom ssl generated by certbot (I use wildcard cert).
Check if old folder with self generated certs is in this localization /opt/mailcow-dockerized/data/assets/ssl/
if yes, you must delete it then restart containers and check (https://docs.mailcow.email/post_installation/reverse-proxy/r_p/#optional-post-hook-script-for-non-mailcow-acme-clients)
if you followed the guide the folder name is mail.yourdomain.com
when I deleted this, mailcow could get correct ssl certs
I checked fingerprint for ssl cerst using this command. (In my case i use webmail.mydomain.com for web ui)
If anyone knows better way to check ssl cerst, pls let me know
HOST="mail.mydomain.com"; WEBHOST="webmail.mydomain.com"; CERT="/opt/mailcow-dockerized/data/assets/ssl/cert.pem"; \
openssl x509 -noout -fingerprint -sha256 -in "$CERT"; \
openssl s_client -starttls smtp -connect "$HOST:587" -servername "$HOST" < /dev/null | openssl x509 -noout -fingerprint -sha256; \
openssl s_client -connect "$HOST:465" -servername "$HOST" < /dev/null | openssl x509 -noout -fingerprint -sha256; \
openssl s_client -starttls imap -connect "$HOST:143" -servername "$HOST" < /dev/null | openssl x509 -noout -fingerprint -sha256; \
openssl s_client -connect "$HOST:993" -servername "$HOST" < /dev/null | openssl x509 -noout -fingerprint -sha256; \
openssl s_client -connect "$HOST:443" -servername "$HOST" < /dev/null | openssl x509 -noout -fingerprint -sha256; \
openssl s_client -connect "$WEBHOST:443" -servername "$WEBHOST" < /dev/null | openssl x509 -noout -fingerprint -sha256
idk if this will solve your issue
ps. I also removed acme-mailcow container and commented in docker compose but it was not the root case
I’m not sure if should be removed or not with custom ssl