前段时间我在 Windows Server 2019 机器上设置了 SMTP 服务器。此服务器的 FQDN 是smtp.mydomain.com,智能主机设置为 smtp-relay.gmail.com,尽管我认为这并不重要。
我将 Let's Encrypt CA 生成的通配符证书 (*.mydomain.com) 安装到 Personal 存储区,并且能够为 SMTP 服务器设置 TLS:
现在,我想更新证书。为此,我将由同一 CA 生成的具有相同主题 (CA=*.mydomain.com) 的更新证书安装到个人商店。然后我停止了 SMTP 服务器并删除了旧证书。之后,我启动了服务器,去检查新证书是否被抓到了,但没有!
该消息告诉“没有证书,TLS 不可用。” 这意味着 SMTP 服务器找不到正确的证书。我阅读了十几个博客和 QA,但无法解决这个问题。
有人知道如何在 Windows Server 2019 机器上正确更新 SMTP 服务器的证书吗?
更新——新证书包含一个私钥,适用于在同一台机器上运行的 Web 服务器。
我有同样的问题,但有一些差异。
我正在调查中,我到目前为止的调查结果:
我不使用通配符证书,我有 SAN 的 Let's Encrypt 证书。它已经工作了几个月,完成了三次更新,没有任何问题。现在,在第四次更新 SMTP 后停止工作。最后一份工作证明是在 2020 年 7 月 28 日签发的,更新是在 2020 年 9 月 22 日完成的。如果证书是问题的根源,那么在这段时间内 Let's Encrypt 方面发生了一些变化。
行为很奇怪。当 smtpsvc 服务启动时,它找到证书,它记录
为带有指纹 <certificate_thumbprint_removed> 的 SMTP 虚拟服务器实例“1”找到了 TLS 服务器证书。TLS 将可用于此虚拟服务器。
在事件日志中,但在 Internet 信息服务 (IIS) 6.0 管理器中的 SMTP 虚拟服务器属性中的选项卡上的访问中的安全通信部分我可以看到
没有证书,TLS 不可用。
证书本身必须有一些变化,或者有一些 Windows 更新改变了 smtpsvc 功能,或者有一些关于 SSL/TLS 的变化。
顺便说一句,我发现微软在 smtpsvc 服务的代码中有一个 bug。如果您使用带有主题备用名称 (SAN) 的证书,当它搜索合适的证书时,它不会检查通用名称 (CN),它只检查 SAN 列表中的第一个条目!如果第一个 SAN 与在“交付”选项卡、“高级...”按钮、“完全限定域名”字段中输入的 FQDN 匹配,则 smtpsvc 将使用该证书。如果匹配名称在 CN 或 SAN 列表中的第二、第三等位置,则不会使用证书和日志
找不到 SMTP 虚拟服务器实例“1”的可用 TLS 服务器证书。将为此虚拟服务器禁用 TLS。
我们遇到了同样的问题 - 通配符替换为通配符,但事实证明我们必须使用传统通配符而不是常规通配符,然后关闭出站 tls,重新启动 smtp,打开 tls,再次重新启动,然后它按预期工作.