![Exchange 2003 SMTP 的 SSL](https://linux22.com/image/495665/Exchange%202003%20SMTP%20%E7%9A%84%20SSL.png)
我有许多使用 Small Business Server 2003 的客户,其中包括 Exchange Server 2003。其中一些客户使用 AT&T 作为其 ISP。
为了避免因暂时被列入垃圾邮件机器人的黑名单而失去电子邮件发送能力,我希望将电子邮件交付交给 AT&T,而不是直接交付(是的,我们仍将清理垃圾邮件机器人)。AT&T 需要 SSL,而 Microsoft 似乎直到 Exchange 2007 才支持它。
我发现 STunnel 是一种可能的解决方法,但看起来隧道必须一直保持运行?
有人在 Exchange 2003/AT&T 环境中成功使用 STunnell 并愿意分享秘诀吗?
有人知道使用 Exchange 2003 和 AT&T 的更好的解决方案吗?
答案1
我们最近在德国遇到了同样的问题,因为从明年(2014 年)年初开始所有 ISP 都要求建立 SSL 连接。
对于我们来说,以下解决方法是有效的:
我们正在运行 Microsoft Small Business Server 2003(包括 Exchange)。由于 Exchange 2003 Server 本身不支持 SSL 加密,因此我们必须安装 stunnel(可从以下网站免费下载)http://www.stunnel.org) 并将 Exchange 服务器配置为将外发邮件发送到 stunnel 而不是直接发送到 ISP。然后 stunnel 使用 SSL 加密电子邮件并将其传递给 ISP。
我们是这样做的:
- 隧道
需要将软件配置为监听不同于标准端口 25 的(空闲)端口(因为 Exchange Server 仍然需要端口 25 来接收电子邮件)。在本例中,我们使用端口 259。此外,stunnel 需要知道电子邮件在加密后要传递到哪个 ISP 和端口。为了提供此信息,必须使用编辑器(例如记事本)自定义文件“stunnel.conf”。以下是自定义文件的内容(其中 [yourisp:port] 必须替换为您的 ISP 为 SMTP 连接指定的完全限定域名和端口):
;全局选项
;调试(激活以进行故障排除)
;调试 = 7
; 输出 = stunnel.log
;服务默认值
;禁用对不安全的 SSLv2 协议的支持
选项 = NO_SSLv2
;在任务栏上显示 stunnel 图标
任务栏 = 是
; 服务定义(接受 Exchange 2003 的电子邮件
;并将其传递给 ISP)
[SSLSMTP]
客户端 = 是
接受 = 127.0.0.1:259
连接 = [yourisp:端口]
;例如:connect = smtp.live.com:587
协议 = smtp
- Exchange 服务器 2003
然后必须将 Exchange Server 2003 配置为将所有外发电子邮件发送到端口 259 上的隧道,而不是发送到您的 ISP。这需要在两个地方进行修改:
a) Internet 邮件 SMTP 连接器
在 Exchange 系统管理器树中导航到“管理组”、“[第一个] 管理组”、“路由组”、“[第一个] 路由组”、“连接器”、“Internet 邮件 SMTP 连接器”。打开 Internet 邮件 SMTP 连接器的属性。在“常规”选项卡下的“通过此连接器将所有邮件转发到以下智能主机”中指定“[127.0.0.1]”而不是您的 ISP 地址。确保包含方括号,因为 Exchange 需要它们来接受 IP 地址作为目标。
b) 默认 SMTP 虚拟服务器
在 Exchange 系统管理器树中导航到“管理组”、“[第一个] 管理组”、“服务器”、“[服务器名称]”、“协议”、“SMTP”、“默认 SMTP 虚拟服务器”。打开默认 SMTP 虚拟服务器的属性,然后转到“传递”选项卡。单击“出站连接”。在“TCP 端口”下指定端口 259,而不是端口 25。
确保启动 stunnel 服务并将 stunnel 服务指定为在系统启动时自动启动,以便在重启后也能激活 stunnel。