




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【IT专家网独家】在Exchange 2007中,当安装一台中心传输服务器或者边缘传输服务器的时候,系统会自动创建一张缺省的证书,该证书由Exchange 自己生成的,和实际的CA生成的证书相反。该证书是自签名的。这张缺省的证书就变成直接信任证书。该直接信任证书保存在两个位置,本地计算机的证书存储中和活动目录中Exchange 服务器对象的msExchServerInternalTLSCert的二进制值中。保存在活动目录中的证书的私钥不能被访问,私钥只能通过本地服务器来访问。如果Exchange 无法从这两个位置访问该证书的话,那么中心传输服务器之间的邮件流以及中心传输服务器和边缘传输服务器之间的邮件流都会出现问题。一、直接信任证书的用途:Exchange 在下面几种情况下使用直接信任证书: 为组织内部的中心传输服务器之间的SMTP流量建立安全通道,它使用微软专用的名叫X-AnonymousTLS SMTP 扩展。 为组织内部的中心传输服务器和边缘传输服务器之间的SMTP流量建立安全通道,也使用X-AnonymousTLS SMTP 扩展。 中心传输服务器和边缘传输服务器之间的通信时使用的身份验证机制,通常称为直接信任。 在边缘订阅中建立从中心传输服务器到边缘传输服务器之间的安全的LDAP连接, 加密和解密边缘同步的credentials,这些证书保存在活动目录中。二、如何查看直接信任证书:下面是中心传输服务器上的缺省证书的样本,碰巧该证书是直接信任证书。CertificateDomains : ex2k7-01, CertificateRequest :IsSelfSigned : TrueKeyIdentifier : ACC553F41452A55AA7B16F59C4FA786747BA0E3DRootCAType : NoneServices : IMAP, POP, SMTPStatus : ValidPrivateKeyExportable : TrueFriendlyName : Microsoft ExchangeNotAfter : 2008-12-27 19:27:20NotBefore : 2007-12-27 19:27:20HasPrivateKey : TrueSerialNumber : FA952809058E239A4ECAE88E9991A652SubjectName : System.Security.Cryptography.X509Certificates.X500DistinguishedNameThumbprint : 4D45BE9340228B148C31AE187F8B6B6696524E0AVersion : 3Issuer : CN=ex2k7-01Subject : CN=ex2k7-01该证书是直接信任证书,不幸的是,在Exchange 2007中,我们无法查看它。在上述的例子中,该证书是自签名的,可以从IsSelfSigned属性中看出。但是任何有效的证书,只要它的CertificateDomains包含该服务器的FQDN名称都有可能是直接信任证书。如果安装了多张证书,有一些指南可以更好地帮助我们来判断哪张证书是缺省的直接信任证书,我们可以通过下面的命令来实现:Get-ExchangeCertificate DomainName | FL Thumbprint, Status, IsSelfSigned, NotBefore基本上,观察所有的包含本地计算机的FQDN名称、NotBefore(开始生效时间)时间、是否为自签名的证书,如果所有的证书中没有自签名的,那么最新的且有效的最有可能是缺省的直接信任证书,如果所有的证书都是自签名的,那么最新的且有效的最有可能是缺省的直接信任证书。注意:您不能使用Remove-ExchangeCertificate命令来删除直接信任证书,当您试图删除的时候,会出现如图1所示的错误。图1但是我们拥有一种更准确的方法可以来查看哪张证书是缺省的直接信任证书,我们可以通过将下面的脚本(该脚本由微软的Brad Hughes编写的)保存为.ps1文件,然后加载到管理shell中,作为一个函数来使用。$tmp = System.Reflection.Assembly:LoadWithPartialName(System.DirectoryServices);$tmp = System.Reflection.Assembly:LoadWithPartialName(System.Text);$tmp = System.Reflection.Assembly:LoadWithPartialName(System.Security);function Compute-Hash Param (Byte $bytes = $null)$hasher = new-object System.Security.Cryptography.SHA256Managed;$hasher.ComputeHash($bytes);function Write-BytesParam (Byte $bytes = $null)$str = $null;foreach($byte in $bytes)$str = $str + System.String:Format(0:X2 ,$byte);$str;function FromBase64Param (String $instr = $null)System.Convert:FromBase64String($instr)function ToBase64Param (Byte $inbytes = $null)System.Convert:ToBase64String($inbytes)function GetMachineName(Get-WmiObject Win32_ComputerSystem).Name;function GetLDAPPrefix$machineName = GetMachineName;$exserver = get-ExchangeServer $machineName;if($exserver.Is边缘传输服务器Server)$ldapprefix = LDAP:/localhost:50389/write-host Running on an 边缘传输服务器 Server - pulling cert details from Adam;else$ldapprefix = LDAP:/;write-host Not running on 边缘传输服务器 - getting cert details from AD;$ldapprefix;function GetRootDSE$ldapprefix = GetLDAPPrefix;$rootdse = new-object System.DirectoryServices.DirectoryEntry ($ldapprefix + RootDSE);$rootdse;function GetExchangeServerObjectParam (System.String $machinename = $null)$rootdse = GetRootDSE;write-host $rootdse;$ds = new-object System.DirectoryServices.DirectorySearcher;$ldapprefix = GetLDAPPrefix;$ds.SearchRoot = new-object System.DirectoryServices.DirectoryEntry ($ldapprefix + $rootdse.ConfigurationNamingContext);$ds.Filter = (&(objectclass=msExchExchangeServer)cn=$machinename);write-host $ds.Filter;$ds.SearchScope = System.DirectoryServices.SearchScope:Subtree;$server = $ds.FindOne();$server;function GetTLSCertFromADParam (System.String $server = $null)if($server -eq $null)write-error GetTLSCertFromAD - Must provide server parameter;$null;$serverobj = GetExchangeServerObject $serverwrite-host Getting Prop$tlscert = System.Security.Cryptography.X509Certificates.X509Certificate2 $serverobj.Propertiesmsexchserverinternaltlscert0;$tlscert;function GetCertforThumbprintParam (String $print = $null)if($print -eq $null)write-error GetCertforThumbprint;$null;$certstore = new-object System.Security.Cryptography.X509Certificates.X509Store My,LocalMachine;$certstore.Open(System.Security.Cryptography.X509Certificates.OpenFlags:ReadOnly);foreach($curCert in ($certstore.certificates)if($curCert.Thumbprint -eq $print)$curCert;$certstore.Close();将上述的脚本保存到c:certlib.ps1文件中,然后从Exchange 命令行中运行下面的命令:. C:CertLib.PS1注意:.和C:CertLib.PS1和之间有一个空格。一旦执行完上面的命令后,可以通过GetTLSCertFromAD函数并带上服务器的名称来找到缺省的直接信任证书的指纹。如图2所示。图2您可以通过将该指纹和服务器上证书的指纹做比较,来判断哪个是缺省的直接信任证书。注意:在Exchange 2007 SP1中,我们可以通过运行Get-TransportServer命令来查看InternalTlsCertificate指纹的属性,可以更容易地判断哪张证书是缺省的直接信任证书。三、更新直接信任证书:一次只能有一张证书是直接信任证书,如果您打算替换直接信任证书,您必须先替换存在的这张证书。要想成为新的直接信任证书,必须要满足下面的条件:该证书必须有效该证书必须分配到SMTP服务该证书的CertificateDomains中必须包含本地计算机的Physical Fully Qualified Domain名称任何证书满足上述条件后,在缺省情况下,根据下面标准来选择:PKI 证书 (由信任的Certificate Authority颁发的证书)优先于自签名的证书在首先的证书中,根据NotBefore时间选择最新的那一张证书。当Enable-ExchangeCertificate thumbprint Services SMTP命令被执行后,Exchange 将会启动选择过程来判断直接信任证书是否应该被更新,如图3所示。图3假设有这样一种情况:一台服务器的DNSPhysicalFQDN名称为中心传输服务器1.FOURTHCOFFEE.COM。在的直接信任证书是1/31/2007安装Exchange 时创建的一张自签名证书,一张由信任的CA颁发的证书被导入后,并且被激活。该证书的CertificateDomains 含有中心传输服务器1.FOURTHCOFFEE.COM名称,NotBefore时间为4/23/2007,它是有效的并且满足所有的成为直接信任证书的条件。因为该信任的CA颁发的证书要比当前的直接信任证书要新,它将会成为新的直接信任证书。这意味着保存在活动目录中的msExchServerInternalTLSCert将会被更新并包含新的证书。一个星期后,4/30/2007,管理员使用下面的命令创建了一张新的自签名证书:New-ExchangeCertificate DomainName:”中心传输服务器1.FOURTHCOFFEE.COM” Services:”SMTP”当New-ExchangeCertificate命令将要完成的时候,它将会为证书激活SMTP服务,通过这样做,Enable-ExchangeCertificate任务将会检查该证书是否成为新的直接信任证书。虽然它满足所有要求的条件,但是现在的直接信任证书是从信任的CA颁发的,而新的证书只是一张自签名的证书,所以它不会成为新的直接信任证书。这样的话,如果直接信任证书不能被删除,Exchange 更倾向使用信任CA颁发的证书而不是自签名的证书,如果管理员需要删除该证书的话,那需要如何操作呢?要想这样做的话,管理员必须使用证书管理工具手动从证书存储中删除该证书,具体的方法如下:1、 点击开始,选择运行,输入mmc.exe,然后点击File,选择Add/Remove Snap-In,如图4所示,图42、 选择Standalone,点击Add,如图5所示,图53、 选择Certificates,点击Add,如图6所示,图64、 选择Computer account,点击Add,如图7所示,图75、 选择Local computer,点击Finish,如图8所示。图86、 这时本地计算机的Certificates被添加进来,如图9所示,点击OK,图97、 展开到Personal-Certificates,在右边选中您要删除的证书,如图10所示。图10注意,在删除之前,确保您选择了正确的证书,您可以通过双击该证书,选择Details,查看该证书的指纹是否正确,如图11所示。图11证书也可以从这里导出,如图12 所示。图12使用证书管理工具删除直接信任证书,并不会从AD中的msExchServerInternalTLSCert属性中删除该证书,实际上它只是从本地证书存储中删除了证书,当Enable-ExchangeCertificate来验证是否需要更新直接信任证书的时候,如果直接信任证书无法在本地计算机存储中找到的话,新的证书只要满足前面的条件就会成为缺省的直接信任证书。需要注意的是,如果直接信任证书通过这种方式删除了的话,您需要尽快替换该证书否则邮件流将会马上受到影响。如果没有其他有效的证书可用的话,您需要使用下面的命令来生成一张新的证书。New-ExchangeCertificate DomainName serverFQDN Services SMTP如果服务器上有证书满足条件成为了直接信任证书,您应该通过get-exchangecertificate 命令找到该证书的指纹,然后运行下面的命令:Enable-ExchangeCertificate thumprint -Services SMTP该操作需要正确地更新目录,如果失败的话将会导致中心传输服务器之间以及中心传输服务器和边缘传输服务器之间的邮件流。四、直接信任直接信任是一种由X-AnonymousTLS发起的验证机制,直接信任不是在每次X-AnonymousTLS协商都发生,只是在中心传输服务器和边缘传输服务器协商或者反向协商,因为直接信任使用X-AnonymousTLS,使用直接信任的任何接受连接器上的ExchangeServer验证方法必须被选中,如图13所示。基本上,发送服务器发送自己的直接信任证书的拷贝给接收服务器,接收服务器检查自己的直接信任缓存来查看该证书是否和缓存中的某个服务器匹配,直接信任缓存是一个保存了目录中所有中心传输服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品连锁采购管理制度
- 药库药品使用管理制度
- 药店基本药物管理制度
- 药店药品供应管理制度
- 薪资等级晋升管理制度
- 设备信息档案管理制度
- 设备大修计划管理制度
- 设备招标采购管理制度
- 设备润滑及其管理制度
- 设备维修安装管理制度
- 校园通创业计划书
- 2025陕煤集团榆林化学有限责任公司招聘(300人)笔试参考题库附带答案详解
- 临床重症患者坐式八段锦要点、适应人群、效果及注意事项
- 2024年四川省内江市资中县小升初数学试卷
- 地理-2025年江西省中考第一次模拟考试(全解全析)
- 开轰趴馆的创业计划书
- 《基础护理学(第七版)》考前强化模拟练习试题库500题(含答案)
- 加强门诊服务管理
- 【MOOC】《算法设计与分析》(东北大学) 中国大学慕课答案
- 2025年度消防设施远程监控及报警服务合同3篇
- 病案管理系统用户使用手册
评论
0/150
提交评论