使用您自己的SSL证书

更新时间:2020-05-11 18:00:56

背景

为了确保真实性和安全性,MailStore Server在其提供的所有服务中使用TLS证书。在安装过程中,MailStore Server允许
  • 创建一个自签名证书,
  • 使用现有的证书,
  • 或从“Let's Encrypt”获取证书。
首次安装MailStore Server时,通常会使用创建自签名证书的默认选项,因为它没有任何外部依赖性。尽管这在非生产设置中非常好,但不建议将其用于生产,因为自签名证书不受其他客户端计算机的信任,因为未由受信任的证书颁发机构进行签名,并且用户可能习惯了忽略证书警告。 [caption id="attachment_1164" align="aligncenter" width="405"] 使用您自己的SSL证书-1[/caption] 因此,在使用自签名证书时打开MailStore Web Access时,将显示以下或类似的警告消息。 [caption id="attachment_1165" align="aligncenter" width="817"] 使用您自己的SSL证书-2[/caption] 为了消除警告,提高安全性并增强可用性,需要将MailStore重新配置为使用由受信任的证书颁发机构签发的证书。 下面介绍如何从可信CA手动请求和安装证书。一种替代方法是从Let's Encrypt以更自动化的方式获取证书。如果计算机帐户的个人证书存储中已经包含所需的证书,请按照下文的“在MailStore中使用证书”进行操作。  

先决条件

  • 受信任的证书颁发机构(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)
  • 通过执行以下步骤添加证书管理单元:
    • 单击文件 > 添加/删除管理单元 > 证书 > 添加>
    • 选择计算机帐户,然后单击下一步>
    • 选择本地计算机,然后单击完成
    • 关闭所有打开的对话框窗口
  • 单击证书(本地计算机) > 个人 > 证书
  • 双击以前导入的证书
  • 确保证书的私钥可用:
[caption id="attachment_1167" align="aligncenter" width="319"] 使用您自己的SSL证书-3[/caption]

修复证书库

尽管已成功将证书导入到正确的证书存储中,但有时找不到匹配的私钥。尝试修复证书存储,如下所示:
  • 打开提升的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允许
  • 创建一个自签名证书,
  • 使用现有的证书,
  • 或从“加密”获取证书。
首次安装MailStore Server时,通常会使用创建自签名证书的默认选项,因为它没有任何外部依赖性。尽管这在非生产设置中非常好,但不建议将其用于生产,因为自签名证书不受其他客户端计算机的信任,因为未由受信任的证书颁发机构进行签名,并且用户可能习惯了忽略证书警告。
MScert.png
因此,在使用自签名证书时打开MailStore Web Access时,将显示以下或类似的警告消息。
MSnotrust.png
为了消除警告,提高安全性并增强可用性,需要将MailStore重新配置为使用由受信任的证书颁发机构签发的证书。 下面介绍如何从可信CA手动请求和安装证书。一种替代方法是从Let's Encrypt以更自动化的方式获取证书。有关更多详细信息,请参阅使用“让我们加密证书 ”。 如果计算机帐户个人证书存储中已经包含所需的证书,请按照将证书与MailStore一起使用中的说明进行操作。

先决条件

创建一个新证书

除非已经存在用于访问MailStore服务器的主机名证书,否则请按照以下说明创建新证书并将其导入Windows的证书存储中。

创建证书签名请求(CSR)

下面介绍如何使用certreq工具生成证书签名请求。
  • 登录到MailStore服务器计算机。
  • 准备具有以下内容的文本文件request.inf,并根据需要调整SubjectFriendlyName值。还要在[扩展名]部分中调整主题备用名称(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)
  • 通过执行以下步骤添加证书管理单元:
    • 单击文件 > 添加/删除管理单元 > 证书 > 添加>
    • 选择计算机帐户,然后单击下一步>
    • 选择本地计算机,然后单击完成
    • 关闭所有打开的对话框窗口
  • 单击证书(本地计算机) > 个人 > 证书
  • 双击以前导入的证书
  • 确保证书的私钥可用:
私人key.png

修复证书库

尽管已成功将证书导入到正确的证书存储中,但有时找不到匹配的私钥。尝试修复证书存储,如下所示:
  • 打开提升的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服务。

网页链接