证书是Exchange服务器与客户端之间建立信任的基础。一旦证书过期,OWA无法登录、Outlook频繁弹窗、手机邮件客户端收发失败,甚至内部邮件流都会受到影响。证书续订看似是个例行操作,但实际操作中因为步骤遗漏导致业务中断的案例并不少见。本文将从证书状态检查、续订请求生成、新证书导入部署到最后的验证排查,完整梳理整个流程。

一、检查当前证书状态与到期时间
续订的第一步是搞清楚现状。打开Exchange管理控制台(EMC),定位到服务器配置下的证书节点,可以看到当前服务器上安装的所有证书,双击任意一张证书即可查看主题名称、使用者可选名称(SAN)以及有效期起止时间。如果习惯用命令行,Exchange命令行管理程序会更直观:
Get-ExchangeCertificate | Format-List FriendlyName,Thumbprint,NotAfter,Services,Subject
这条命令会列出所有证书的友好名称、指纹、到期时间、绑定的服务以及证书主题。重点关注两个信息:一是NotAfter字段,建议在到期前至少四周开始准备续订,给CA审核和测试留出充足缓冲期;二是Services字段,它标明了证书当前服务于IIS、SMTP、IMAP、POP中的哪些协议,续订后的新证书必须覆盖同样的服务组合,否则某个协议会继续使用旧证书。
除了到期时间,还要核对证书的SAN条目。Exchange 2013之后的版本强制要求证书包含所有访问域名,比如mail.ipipp.com、autodiscover.ipipp.com以及服务器的内部FQDN。如果续订时漏掉了autodiscover记录,客户端的自动发现功能就会出现证书名称不匹配的警告。内网环境下如果使用内部CA,可以顺便确认内部CA的根证书和中间证书是否仍然有效,避免签发出来的新证书一开始就不可信。
二、生成续订请求并完成证书签发
确认信息后,就可以生成证书续订请求。续订与新建略有不同:续订会基于原有证书的信息生成请求,SAN条目自动继承,不容易出错。在EMC中右键点击需要续订的证书,选择续订Exchange证书,指定保存CSR文件的路径即可。用命令行同样可以完成:
$cert = Get-ExchangeCertificate -Thumbprint "A1B2C3D4E5F60718293A4B5C6D7E8F9012345678" $filepath = "C:\Cert\renew-request.req" Get-ExchangeCertificateRequest -Thumbprint $cert.Thumbprint -GenerateRequest -RequestFile $filepath
CSR文件生成后,将其提交给CA。使用公共CA(如DigiCert、GlobalSign)时,CA通常会通过域名验证来确认申请者对域名的控制权,常见方式是添加DNS TXT记录或在网站根目录放置验证文件,DNS方式最方便,TTL设置短一些便于快速生效。如果企业使用内部CA,直接把请求文件提交到证书颁发机构Web控制台即可。拿到CA签发的证书文件后,通常是.cer或.p7b格式,注意保存好,同时下载对应的中间证书链,缺失中间证书是外部客户端报证书错误最常见的原因。
这里有一个细节值得注意:不要直接修改原有证书的友好名称或提前删除旧证书。有些运维习惯在导入新证书前先清理旧证书,这种做法风险很高,因为Exchange的服务绑定会立刻失去指向,SMTP传输可能直接异常。正确的做法是新旧证书并存,等新证书完全部署并验证通过后,再择机移除旧证书。
三、导入新证书并绑定到各项服务
导入新证书推荐使用命令行,因为可以精确控制文件路径:
Import-ExchangeCertificate -FileData ([System.IO.File]::ReadAllBytes("C:\Cert\new-cert.p7b"))
# 记下返回的指纹,然后启用证书并绑定服务
Enable-ExchangeCertificate -Thumbprint "新的证书指纹" -Services IIS,SMTP,IMAP,POP执行Enable命令时,系统会提示是否覆盖现有的默认SMTP证书,确认覆盖即可。绑定完成后,用Get-ExchangeCertificate再次检查Services字段,确认新证书已经接管了IIS和SMTP。对于IIS站点,Exchange会自动更新绑定,但建议打开IIS管理器,检查默认站点的绑定设置,确认HTTPS绑定指向的是新证书的指纹,特别是服务器上还运行着其他Web应用时,手动改过绑定的站点不会自动跟随更新。
如果证书涉及负载均衡环境或多台Exchange服务器,每一台服务器都需要导入并启用同一张证书。做法是把证书连同私钥导出为PFX文件,在其余服务器上导入:
# 在已导入的服务器上导出带私钥的PFX
$pwd = ConvertTo-SecureString -String "你的导出密码" -Force
Export-ExchangeCertificate -Thumbprint "新证书指纹" -BinaryEncoded -Password $pwd -Path "C:\Cert\exchange-cert.pfx"
# 在其他服务器上导入
Import-ExchangeCertificate -FileData ([System.IO.File]::ReadAllBytes("C:\Cert\exchange-cert.pfx")) -Password $pwd
Enable-ExchangeCertificate -Thumbprint "新证书指纹" -Services IIS,SMTP导入完成后,重启相关服务或直接重启服务器可以避免旧会话缓存干扰。Exchange的前端传输服务对证书变更的感知有时会延迟,重启Microsoft Exchange Frontend Transport Service能加快生效。另外别忘了负载均衡器上如果做了SSL卸载,其自身也需要更新证书,这一步遗漏的话,外部流量依然走旧证书,出现续订了却依然报警告的怪现象。
四、验证证书生效与常见问题排查
部署完成后必须做全面验证。内部验证可以在服务器上浏览OWA,观察浏览器地址栏是否显示正常的安全锁标志,点击查看证书详情确认生效日期和主题名称。外部验证建议使用在线SSL检测工具扫描mail.ipipp.com的443端口,检测报告会明确指出证书链是否完整、SAN条目是否齐全。命令行验证也很方便:
Test-OutlookWebServices -ClientAccessServer "SERVER01" | Format-List
这条命令会模拟客户端访问自动发现、脱机通讯簿等服务,能发现证书名称不匹配的问题。验证移动端时,删除手机上已有的邮件账户再重新配置,因为部分客户端会缓存旧证书信息。
排查几个高频问题:第一,外部客户端提示证书不受信任,绝大多数是中间证书未安装,把CA提供的中间证书导入本地计算机的个人或中间证书颁发机构存储即可;第二,Outlook弹窗依旧,检查内部DNS中服务器的解析记录是否指向了未部署新证书的服务器,双机环境下常出现一台更新一台遗漏的情况;第三,邮件流突然中断,通常是SMTP证书绑定混乱导致,用Get-ExchangeCertificate | fl Thumbprint,Services确认只有一张证书绑定SMTP,出现多张绑定时用Enable-ExchangeCertificate重新明确指定。
最后建议建立证书台账,记录每张证书的指纹、SAN、签发CA和到期时间,并设置到期前60天和30天两级提醒。证书管理看似琐碎,但一次规范化的续订流程配合完整的验证记录,能把这类风险彻底管住,让邮件服务长期平稳运行。
Exchange证书续订证书部署IIS证书绑定修改时间:2026-09-15 23:30:39