目前环境:
- 域名 cdn (
cdn.domain): 作为邮箱后缀,cloudflare 托管 - 域名 real (
real.domain): 真实主机的 ddns 域名,Openwrt 系统,通过 Docker 运行着 mailu 、certbox 、traefik ,且被 cloudflare 反代所有 https 服务。 - 邮箱服务:mailu ( Docker ),配置的是域名 cdn (
cdn.domain)的证书,以及cdn.domain的邮箱后缀,前端页面是https://mailu-front.cdn.domain(通过 openwrt 自身的 nginx 反代并交给 cloudflare )以及https://mailu-front.real.domain(通过 openwrt 自身的 nginx 反代)。smtps 和 imaps 的服务器地址是:mail.cdn.domain - 证书:certbot ( Docker ),包含
cdn.domain和real.domain的证书
问题:
由于 cloudflare 无法反代 smtp 、imap 、smtps 、imaps 等协议,目前只能在内网通过 Dnsmasq 将 cdn.domain 的地址手动解析到内网网关,是可以正常通过 cdn.domain 来访问 mailu 的邮件协议的。为了保护real.domain,所以,并不希望直接让 cloudflare 把mail.cdn.domain解析到真实地址。
期望达到的效果:
希望可以通过 real.domain ,也能访问 mailu 。但是对于客户端:smtps 和 imaps ,好像会验证 sni ,导致无法通过 real.domain 访问。即使是使用不带 tls 的 smtp 和 imap ,小米的邮件客户端也会验证 Host ,然后提示解析失败。
-
尝试过的思路:
- 用 nginx 反代 mail 协议( mailu 有 auth_http 地址),但是 openwrt 的 nginx-full 没有 mail 模块。也尝试过起一个 docker 的 nginx ,但是也没成功(不知道哪里配置错了,客户端只是提示连接被拒绝)
- 用 traefik ,不知道是不是 smtps 和 imaps 不支持,mailu 官方给出的配置,是纯粹只做了路由,并没有让 traefik 解析 tls ,mailu 官方的配置好像是无法达到使用不同的域名的。
请问各位大大,有什么好的方案解决这个问题吗?