Sendmail服务器TLS协商因客户端证书问题失败的诊断与配置调整咨询
Sendmail服务器TLS协商因客户端证书问题失败的诊断与配置调整咨询
我的问题
我运行着一台基于FreeBSD、编译时依赖OpenSSL的Sendmail服务器,最近碰到了个棘手的问题:它总是拒绝和某一组特定客户端完成TLS协商,相关日志如下:
sm-mta[92474]: STARTTLS=server, error: accept failed=-1, reason=sslv3 alert bad certificate, SSL_error=1, errno=0, retry=-1, relay=xx.example.com [XX.XX.XX.XX]
除了这些来自某知名ISP邮件基础设施的失败请求外,服务器其他功能都正常,而且服务器自身的证书是完全有效且最新的。
我有两个疑问,能解答其中任意一个对我来说都很有帮助:
- 该怎么诊断这个问题?有没有办法在Sendmail的环境里获取到那个有问题的客户端证书?
- 能不能修改Sendmail的配置,要么让客户端不要提供证书,要么让Sendmail接受无效的客户端证书?
后续更新:问题已解决
后来我找到了问题的根源:我的服务器证书和DANE TLSA记录不匹配。用Wireshark抓包分析整个交易过程后发现,这家ISP(Comcast)虽然收到了我的有效证书,但还是拒绝了连接,最终确认是TLSA记录没有同步导致的。看起来Comcast可能是互联网上少数会因为DANE验证失败就直接拒绝发送邮件的邮件服务商之一。
备注:内容来源于stack exchange,提问作者Jack Brennen
相关产品推荐
相关产品推荐

