本月优惠

如何在Exchange 安装证书

本文主要介绍如何在Microsoft Exchange 2010中安装由权威机构(以下简称CA)签发的证书,如果是自签名证书请参考微软官方自签名证书文档,同Web应用服务器一样,如果是多台服务器的Exchange需要在每一台上都安装此证书。

f96de0b3a24d2af92a2e6aa06aced5b1.png


一、准备

1. 签发证书

签发证书也就是经过CA验证过域名或者企业信息后所签发的域名证书,例如邮件服务器会使用 smtp.yourdomain.com 作为邮件发件服务器地址,那么该证书验证的域名就是 smtp.yourdomain.com,而smtps协议只是smtp的一个延伸,在应用层和smtp是一样的,smtps使用的是465端口。

2. 中级证书

一个完整的证书链应该由证书 + 中级证书A + 中级证书B + ... +根证书构成,所以通常,由CA签发的证书压缩包中会有1个或者多个中级证书,另外多家CA的中级证书在官网上有下载,关于合并中级证书请参考:SSL证书链不完整导致浏览器不受信任

3. 私钥

私钥通常是在准备CSR证书请求文件时生成,使用openSSL生成存在CSR文件的同级目录中 - 生成CSR证书请求文件 ,使用在线工具会将随机生成的私钥+CSR发送到邮箱中,使用IIS生成CSR要求在完成证书请求后提取私钥 - SSL/TLS多种证书类型的转换

此外Exchange也和IIS一样提供新建证书请求和完成证书请求一样的功能。

二、安装步骤

1. Exchange管理控制台中导入证书

开始菜单中打开Exchange 管理控制台 - 服务器配置 - 导入Exchange证书,选择签发的pfx格式证书,或者普通的x.509格式证书转换为pfx证书 - SSL/TLS多种证书类型的转换,输入pfx证书密码,完成导入证书。

注意:本文使用的是合并后的pfx证书,

2. 服务器配置

点击数据库管理,选择服务器配置 - 右键点击导入的证书 - 为证书分配服务 - 选择指定的服务(Internet邮件访问协议、邮局协议、简单邮件传输协议、Internet信息服务)。

点击下一步 - 分配 - 如果提示是否覆盖SMTP就点击是 - 完成,即可完成证书分配服务。

三、使用Exchange生成CSR请求文件和完成证书安装

上述建立在既有的pfx证书前提下进行的导入证书并配置服务,而Exchange 2010也和IIS一样,具备新建证书请求 和 完成证书请求功能。此举可以代替openSSL和IIS的制作证书过程。

1. 新建证书请求

打开 Exchange管理控制台 - 新建 Exchange 证书

在域范围页中,如果希望制作通配符证书可以启用此项,如果非通配符证书在下一步进行子域名设置,选择下一步。

2. 填写CSR证书请求文件信息

和其它CSR制作一样,设定通用名称为一个子域名,例如 smtp.yourdomain.com,然后填写组织、单位等信息、邮箱等信息点击完成,这样就完成了整个证书请求文件的生成。此时私钥也一并生成,将此CSR文件填写到在线生成CSR输入框内自助申请数字证书 申请证书。

3. 完成证书安装

CA签发证书后,在Exchange管理控制台中点击完成等待请求,选择签发的证书,点击完成也完成了证书导入工作。

注意:Exchange 2010有时会提示错误信息The source data is corrupted or not properly Base64 encoded.通常这是自签名证书引起,尝试重新制作CSR。

四、Exchange 命令行管理程序进行安装

你可以使用Exchange 命令行管理程序进行安装由CA签发的证书,具体命令如下:

1. 导入pfx证书

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:your_domain_name.p7b -Encoding byte -ReadCount 0)) | Enable-ExchangeCertificate -Services SMTP

2. 使用Exchange新建证书过程

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:your_domain_name.cer -Encoding Byte -ReadCount 0)) | Enable-ExchangeCertificate -Services SMTP

注意:注意SMTP可以修改为 "IIS,POP,IMAP,SMTP"支持多个选项

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:your_domain_name.cer -Encoding Byte -ReadCount 0)) | Enable-ExchangeCertificate -Servi