最近遇到这样的一个案例,一个用户在为Exchange 2007上的用户配置POP3 SSL的时候遇到证书的错误,经过仔细分析日志文件,该问题终于得到了解决,现在把它整理一下,和大家一起分享排错的经验。
首先介绍一下用户的配置环境:
域名为abc.com,为了安全上的原因,我将用户的域名做了修改。
Exchange 2007 服务器,安装有中心传输服务器、客户端访问服务器和邮箱服务器等角色。
客户端为Outlook 2003 ,用户通过POP3和SMTP的方式接收和发送邮件。现在用户做了一下配置:
在Outlook 2003中,做了以下设置:
在INTERNET电子邮件设置(POP3)中
―钩选 "使用安全密码验证登陆(SPA)"
―其他设置 "我的发送服务器 (SMTP) 要求验证"
―接收服务器 (POP3) 995端口
―钩选 "此服务器要求加密连接 (SSL)"
―SMTP) 25端口
如图1 所示。
在打开OUTLOOK2003后,点"收发邮件",出现下面的信息:
您连接到的服务器正在使用一个无法验证的安全证书.
已处理证书链,但是在不受信任提供程序信任的根证书中终止.
您想继续使用这个服务器吗?(是/ 否)
看到这个错误,我首先想到客户端可能不信任该证书,该证书可能是一张自签名的证书,在安装Exchange 2007服务器的时候,系统会自动安装一张自签名的证书,由于该证书不位于客户端的受信任的根证书存储列表中,因此该证书不被客户端信任。为了确认该证书的相关信息,我让用户在Exchange 2007服务器上运行下面的命令:
Get-exchangecertificate | fl *
Acce***ules : {System.Security.AccessControl.CryptoKeyAcce***ule, Syst
em.Security.AccessControl.CryptoKeyAcce***ule, System.Se
curity.AccessControl.CryptoKeyAcce***ule}
CertificateDomains : {servername, servername.abc.com}
CertificateRequest :
IisServices : {IIS://servername/W3SVC/1}
IsSelfSigned : True
KeyIdentifier : 9DF099B1F590BD4E9F1E851203F249E5F28EB8B1
RootCAType : None
Services : IMAP, POP, IIS, SMTP
Status : Valid
根据下面的信息,我们可以判断出该证书是自签名的证书:
IsSelfSigned : True
我建议用户从第三方商业机构申请证书或者从安装Windows CA来颁发证书,通过import-exchangecertificate命令导入该证书,然后通过Enable-ExchangeCertificate -Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e -Services "POP, IMAP" 为该证书启用POP3服务,在测试一下,看结果如何。
同时我又让用户在Exchange 服务器上运行下面的命令来检查POP3的相关设置:
Get-popsettings | fl
Name : 1
ProtocolName : POP3
MaxCommandSize : 45
MessageRetrievalSortOrder : Descending
UnencryptedOrTLSBindings : {0000:0000:0000:0000:0000:0000:
.0:110}
SSLBindings : {0000:0000:0000:0000:0000:0000:.0:995,
.0:995}
X509CertificateName : servername
Banner : The Microsoft Exchange POP3 service is read
y.
LoginType : PlainTextLogin
我发现Logintype设置不正确,POP3有三种身份验证方法,分别是PlainTextLogin、PlainTextAuthentication和SecureLogin。说到这里,我们不得不解释每种身份验证方法的具体含义。
PlainTextLogin表示端口 110 上不需要 TLS 加密。
PlainTextAuthentication表示端口 110 上不需要 TLS 加密。但是,只允许在使用 TLS 或 SSL 加密的端口上使用基本身份验证。
SecureLogin 表示执行身份验证之前,端口 110 上的连接必须使用 TLS 加密。
因此,正确的设置应该是SecureLogin。我让用户运行下面的命令来修改:
Set-popsettings -logintype SecureLogin
此外,我还发现下面的信息:
X509CertificateName : servername
这时,用户打开Outlook时出现下面的信息:
您连接的服务器正在使用一个无法验证的安全证书.
证书的CN名给传递的值不匹配.
你想继续使用这个服务器吗?
看到该信息,说明前面的步骤已经生效了,该错误只是说明证书的名称和POP3中设置的服务器名称不一致。
我让用户仔细检查图2中接收服务器中设置的服务器名称是否和X509CertificateName中的名称一致,用户发现它填写的是服务器的IP地址,在修改为与X509CertificateName一致的名称后,打开Outlook后,不会出现任何告警信息,问题到此已经解决。
转载于:https://blog.51cto.com/evely/349289