使用您自己的SSL证书
更新时间:2020-05-11 18:00:56
背景
为了确保真实性和安全性,MailStore Server在其提供的所有服务中使用TLS证书。在安装过程中,MailStore Server允许- 创建一个自签名证书,
- 使用现有的证书,
- 或从“Let's Encrypt”获取证书。
先决条件
- 受信任的证书颁发机构(CA)
- certreq工具(默认情况下在大多数Windows安装中可用)
创建一个新证书
除非已经存在用于访问MailStore Server的主机名证书,否则请按照以下说明创建新证书并将其导入Windows的证书存储中。创建证书签名请求(CSR)
下面介绍如何使用certreq工具生成证书签名请求。- 登录到MailStore Server计算机。
- 准备具有以下内容的文本文件request.inf,并根据需要调整Subject和FriendlyName值。还要在[扩展名]部分中调整主题备用名称(SAN)。请注意,通用名(CN)在主题无关的客户端验证,并且所有主机名必须作为SAN的。可以在附加主机名的后面加上其他_continue_行。
;----------------- request.inf ----------------- [Version] Signature="$Windows NT$" [NewRequest] ; replace Subject attributes in the line below with real values Subject = "CN=mailstoreserver.example.com, OU=Department, O=Organisation, L=Locality, S=State, C=CountryCode" KeySpec = 1 KeyLength = 2048 Exportable = TRUE FriendlyName = mailstoreserver.example.com MachineKeySet = TRUE SMIME = False PrivateKeyArchive = FALSE UserProtected = FALSE UseExistingKeySet = FALSE ProviderName = "Microsoft RSA SChannel Cryptographic Provider" ProviderType = 12 RequestType = PKCS10 KeyUsage = 0xa0 [EnhancedKeyUsageExtension] OID = 1.3.6.1.5.5.7.3.1 ; this is for Server Authentication [Extensions] 2.5.29.17 = "{text}" _continue_ = "DNS=*.example.com&" _continue_ = "DNS=mailstoreserver.example.com&"
- 保存文件。
- 打开提升权限的命令提示符,然后导航到存储request.inf的目录。
- 通过执行以下命令来创建CSR:
certreq -new request.inf request.csr
验证证书签名请求
要验证CSR是否正确,请执行以下命令并且以可读的格式显示它:certutil -dump request.csr
提交证书签名请求
将CSR提交给您首选的CA。通常,您将CSR文件上传到CA的网站。在提交过程中,CA可能会要求服务器平台。选择IIS 7或列出的任何一项都应该足够。成功获得CSR批准后,您将获得签名证书。导入证书
- 打开提升权限的命令提示符,然后导航到存储证书文件的目录。
- 执行以下命令以将证书导入计算机的个人证书存储中:
certreq -accept certificate.cer
验证导入
- 以管理员身份登录到MailStore Server计算机。
- 打开Microsoft管理控制台(MMC)
- 通过执行以下步骤添加证书管理单元:
- 单击文件 > 添加/删除管理单元 > 证书 > 添加>
- 选择计算机帐户,然后单击下一步>
- 选择本地计算机,然后单击完成
- 关闭所有打开的对话框窗口
- 单击证书(本地计算机) > 个人 > 证书
- 双击以前导入的证书
- 确保证书的私钥可用:
修复证书库
尽管已成功将证书导入到正确的证书存储中,但有时找不到匹配的私钥。尝试修复证书存储,如下所示:- 打开提升的PowerShell并执行以下命令:
Get-ChildItem Cert:\LocalMachine\My | select Subject, Serialnumber, Thumbprint, HasPrivateKey
- 检查已安装证书的主题,序列号和指纹,以标识MailStore要使用的证书。
- 通过执行以下命令来修复相应的证书存储,其中SerialNumber是应使用的证书的序列号。
certutil -repairstore my SerialNumber
在MailStore中使用证书
- 打开MailStore服务器服务配置。
- 选择网络设置。
- 在要更改其证书的部分中,单击“服务器证书”字段旁边的按钮,然后选择“从证书存储中选择...”。
- 从证书存储中选择新证书。
- 确认您的选择,然后重新启动MailStore Server服务。
导入现有证书
通常,证书是通过个人信息交换(PFX / P12)容器在计算机之间交换的。例如,可以使用MMC管理单元证书的导出功能来创建这些证书。可选:使用OpenSSL / LibreSSL创建PFX容器
如果原始CSR不是使用Windows自己的工具创建的,甚至不是在Windows计算机上创建的,则私钥或证书不太可能在MailStore Server计算机的Windows证书存储中可用,而是存储在文件上系统代替。 在这种情况下,首先需要创建一个个人信息交换(PFX)容器。这需要包含证书,私钥和证书链的所有证书。之后,可以将PFX容器导入Windows的证书存储中。 需要执行以下步骤,以将证书文件转换为具有OpenSSL或LibreSSL的PFX容器:- 将证书,私钥和证书链的证书复制到OpenSSL或LibreSSL目录中。
- 打开提升权限的命令提示符,然后导航到该目录。
- 通过执行以下命令来创建PFX容器,并调整必要的文件名:
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
导入PFX文件
- 打开MailStore Server服务配置。
- 选择网络设置。
- 在要更改其证书的部分中,单击“服务器证书”字段旁边的按钮,然后选择“从文件导入...”。
- 选择PFX文件。
- 如果PFX文件已受密码保护,则要求您立即提供密码。
- 确认您的选择,然后重新启动MailStore Server服务。
使用您自己的SSL证书
内容
[ 显示 ]背景
为了确保真实性和安全性,MailStore Server在其提供的所有服务中使用TLS证书。在安装过程中,MailStore Server允许- 创建一个自签名证书,
- 使用现有的证书,
- 或从“加密”获取证书。
先决条件
- 受信任的证书颁发机构(CA)
- certreq工具(默认情况下在大多数Windows安装中可用)
创建一个新证书
除非已经存在用于访问MailStore服务器的主机名证书,否则请按照以下说明创建新证书并将其导入Windows的证书存储中。创建证书签名请求(CSR)
下面介绍如何使用certreq工具生成证书签名请求。- 登录到MailStore服务器计算机。
- 准备具有以下内容的文本文件request.inf,并根据需要调整Subject和FriendlyName值。还要在[扩展名]部分中调整主题备用名称(SAN)。请注意,通用名(CN)在主题无关的客户端验证,并且所有主机名必须作为SAN的。可以在附加主机名的后面加上其他_continue_行。
; ----------------- request.inf ----------------- [Version] Signature =“ $ Windows NT $” [ NewRequest] ; 用实际值替换下面一行中的主题属性 主题=“ CN = mailstoreserver.example.com,OU =部门,O =组织,L =位置,S =州,C =国家代码” KeySpec = 1 KeyLength = 2048可 导出= TRUE FriendlyName = mailstoreserver.example.com MachineKeySet = TRUE SMIME = False PrivateKeyArchive = FALSE用户 保护= FALSE UseExistingKeySet = FALSE ProviderName =“ Microsoft RSA SChannel加密提供程序” ProviderType = 12 RequestType = PKCS10 KeyUsage = 0xa0 [EnhancedKeyUsageExtension] OID = 1.3.6.1.5.5.7.3.1; 这用于服务器身份验证 [扩展名] 2.5.29.17 =“ {text}” _continue_ =“ DNS = *。example.com&” _continue_ =“ DNS = mailstoreserver.example.com&”
- 保存文件。
- 打开提升权限的命令提示符,然后导航到存储request.inf的目录。
- 通过执行以下命令来创建CSR:
certreq-新request.inf request.csr
验证证书签名请求
要验证CSR是否正确,请执行以下命令以人类可读的格式显示它:certutil -dump request.csr
提交证书签名请求
将CSR提交给您首选的CA。通常,您将CSR文件上传到CA的网站。在提交过程中,CA可能会要求服务器平台。选择IIS 7或列出的任何一项都应该足够。成功获得CSR批准后,您将获得签名证书作为回报。请注意:如今,证书主要由中间CA签署。要求将中间CA的证书导入证书存储中。有关中间CA证书安装过程的详细信息通常包含在证书的电子交付中。
导入证书
- 打开提升权限的命令提示符,然后导航到存储证书文件的目录。
- 执行以下命令以将证书导入计算机的个人证书存储中:
certreq -accept certificate.cer
验证导入
- 以管理员身份登录到MailStore Server计算机。
- 打开Microsoft管理控制台(MMC)
- 通过执行以下步骤添加证书管理单元:
- 单击文件 > 添加/删除管理单元 > 证书 > 添加>
- 选择计算机帐户,然后单击下一步>
- 选择本地计算机,然后单击完成
- 关闭所有打开的对话框窗口
- 单击证书(本地计算机) > 个人 > 证书
- 双击以前导入的证书
- 确保证书的私钥可用:
修复证书库
尽管已成功将证书导入到正确的证书存储中,但有时找不到匹配的私钥。尝试修复证书存储,如下所示:- 打开提升的PowerShell并执行以下命令:
Get-ChildItem证书:\ LocalMachine \ My | 选择主题,序列号,指纹,HasPrivateKey
- 检查已安装证书的主题,序列号和指纹,以标识MailStore要使用的证书。
- 通过执行以下命令来修复相应的证书存储,其中SerialNumber是应使用的证书的序列号。
certutil -repairstore我的序列号
在MailStore中使用证书
- 打开MailStore服务器服务配置。
- 选择网络设置。
- 在要更改其证书的部分中,单击“ 服务器证书”字段旁边的按钮,然后选择“从证书存储中选择...”。
- 从证书存储中选择新证书。
- 确认您的选择,然后重新启动MailStore Server服务。
导入现有证书
通常,证书是通过个人信息交换(PFX / P12)容器在计算机之间交换的。例如,可以使用MMC管理单元证书的导出功能来创建这些证书。可选:使用OpenSSL / LibreSSL创建PFX容器
如果原始CSR不是使用Windows自己的工具创建的,甚至不是在Windows计算机上创建的,则私钥或证书不太可能在MailStore Server计算机的Windows证书存储中可用,而是存储在文件上系统代替。 在这种情况下,首先需要创建一个个人信息交换(PFX)容器。这需要包含证书,私钥和证书链的所有证书。之后,可以将PFX容器导入Windows的证书存储中。 需要执行以下步骤,以将证书文件转换为具有OpenSSL或LibreSSL的PFX容器:- 将证书,私钥和证书链的证书复制到OpenSSL或LibreSSL目录中。
- 打开提升权限的命令提示符,然后导航到该目录。
- 通过执行以下命令来创建PFX容器,并调整必要的文件名:
openssl pkcs12-导出-out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
导入PFX容器
- 打开MailStore服务器服务配置。
- 选择网络设置。
- 在要更改其证书的部分中,单击“ 服务器证书”字段旁边的按钮,然后选择“ 从文件导入...”。
- 选择PFX文件。
- 如果PFX文件已受密码保护,则要求您立即提供密码。
- 确认您的选择,然后重新启动MailStore Server服务。