Dynamics CR-替换SSL证书

问题:

在访问Dynamics CRM的时候由于SSL证书是有期限限制的,所以需要在一段时间之后更换SSL证书。SSL证书分为两类,一类是自建证书,一类是外网证书

自建证书是在服务器安装完成之后,在CA服务器中申请的自签名通配符证书;

外网证书是在第三方证书颁发机构买的通配符证书,在购买的第三方证书需要进行域名备案,比如腾讯云或者阿里云。

那么对于自建证书过期之后如何进行替换呢?

解决方案:

自建证书过期之后我们可以重新申请一个证书,然后将新申请的证书导入IIS和ADFS管理器

一、申请证书

1.进入到CRM服务器,打开IIS管理器,双击打开"服务器证书"

Dynamics CR-替换SSL证书

Dynamics CR-替换SSL证书

2.创建证书申请

点击"创建证书申请"

Dynamics CR-替换SSL证书

3.填写证书信息,信息填写完成之后,点击"下一步"

Dynamics CR-替换SSL证书

*.hmp02.com:通配符证书名称,通配符证书一般为 *.域名.com。例如:*.hmp02.com

组织和组织单位都为CRM

城市/地点和省/市/自治区自指定,一般是所在省市的信息

4.默认加密服务提供程序,点击"下一步"

 

Dynamics CR-替换SSL证书

5.将证书申请保存到本地的txt文件中,最后需要用txt文件中的内容进行证书申请

Dynamics CR-替换SSL证书

填写文件名称,点击"打开"

Dynamics CR-替换SSL证书

点击"完成"

Dynamics CR-替换SSL证书

完成之后就会在本地创建一个CRMCert.txt的文件

Dynamics CR-替换SSL证书

打开文件内容的格式如下所示

Dynamics CR-替换SSL证书

6.进入到CA服务器进行证书申请和下载,一般CA服务都和AD域服务器在一块安装,当然也可以单独分开安装

在CA服务器的浏览器中输入:http://机器名/certsrv/,输入用户和密码进行登录,登录成功打开证书注册页面,选择"申请证书",进入到证书申请页面

Dynamics CR-替换SSL证书

例如:http://hmp02-crm/certsrv/,hmp02就是机器名称

在证书申请页面,点击"高级证书申请",进入到高级证书申请页面

Dynamics CR-替换SSL证书

在高级证书申请页面,选择"使用 base64 编码的 CMC 或 PKCS #10 文件提交 一个证书申请,或使用 base64 编码的 PKCS #7 文件续订证书申请"

Dynamics CR-替换SSL证书

将CRMCert.txt中的内容复制到保存的申请的文本框中,证书模板选择"Web 服务器"。点击"提交"

Dynamics CR-替换SSL证书

提交完成之后,进入到证书页面,点击"下载证书"

Dynamics CR-替换SSL证书

将证书另存到本地

Dynamics CR-替换SSL证书

此处将证书存储到桌面,取名为CRMCert2020.cer,点击"保存"

Dynamics CR-替换SSL证书

提示证书已经下载完成,我们点击"打开文件夹"就可以看到下载的证书

Dynamics CR-替换SSL证书

申请的证书文件如下图

Dynamics CR-替换SSL证书

证书申请完成

 

二、将证书导入到IIS

自建证书申请完成之后,将证书导入到IIS服务器中

7.进入CRM服务器的IIS管理器,点击"完成证书申请"

Dynamics CR-替换SSL证书

选择刚才创建的证书文件,好记名称可以自建,但是一般为证书名称+日期,例如:CRMCert20201102,证书存储默认为个人。点击"确定"

Dynamics CR-替换SSL证书

如图所示,新申请的证书已经导入到了IIS服务器中

Dynamics CR-替换SSL证书

8.将新证书和Dynamics CRM进行绑定,如果不绑定的话,会导致CRM和ADFS无法通信

在IIS中选择"Microsoft Dynamics CRM"网站,点击”绑定“

Dynamics CR-替换SSL证书

选中https类型,点击"编辑"

Dynamics CR-替换SSL证书

选择刚才申请的证书,这里显示的是证书在IIS管理器的"好记名称"

Dynamics CR-替换SSL证书

选择完成之后,点击"确定"

Dynamics CR-替换SSL证书

将证书导入到IIS完成

三、将证书导入到ADFS管理器

在将就证书导入到ADFS服务器之前,需要保证ADFS拥有访问证书的权限

9.在CRM服务器中打开PowerShell输入mmc,打开mmc控制台。将证书添加到mmc控制单元

Dynamics CR-替换SSL证书

进入到mmc控制台中,点击"文件",选择"添加/删除管理单元(M)...."

Dynamics CR-替换SSL证书

选择'证书",点击"添加"

Dynamics CR-替换SSL证书

再弹出框中,选择"计算机帐户",点击"下一步"

Dynamics CR-替换SSL证书

保持默认选择,点击"完成"

Dynamics CR-替换SSL证书

点击完成之后,就可以看到证书添加到”所选管理单元"中,点击"确定"。

Dynamics CR-替换SSL证书

添加完成

Dynamics CR-替换SSL证书

10.给ADFS帐户分配证书权限

展开证书选择"个人-证书",找到刚才创建的证书

Dynamics CR-替换SSL证书

右键点击证书,选择"所有任务",点击"管理私钥"

Dynamics CR-替换SSL证书

在弹框中点击"添加",添加用户

Dynamics CR-替换SSL证书

在选择用户、计算机、服务帐户或组的弹框中,通过输入对象名称来选择,输入Net,点击"检查名称"

Dynamics CR-替换SSL证书

系统中会按照模糊查询,查询出来用户。在查询出来的用户中选择"NETWORK SERVICE",点击"确定"

Dynamics CR-替换SSL证书

用户选择完成之后,会将用户名称填入,点击"确定"

Dynamics CR-替换SSL证书

用户添加完成,点击"确定"

Dynamics CR-替换SSL证书

11.将证书导入到ADFS服务器中

打开ADFS管理,展开"服务",选择"证书"

Dynamics CR-替换SSL证书

点击"设置服务通信证书",选择申请的新证书,点击"确定"

Dynamics CR-替换SSL证书

如果出现证书**长度提示信息,选择"是"

Dynamics CR-替换SSL证书

出现如下提示,选择"是"

Dynamics CR-替换SSL证书

点击确定之后,证书替换成功。

Dynamics CR-替换SSL证书

如果证书替换过程中,抛出如下错误:

Dynamics CR-替换SSL证书

则再PowerShell中执行如下命令:Set-ADFSProperties -AutoCertificateRollover $false

设置自动更新为false,这样在替换证书之后就不会在出现此问题,在更新完成之后记得运行:Set-ADFSProperties -AutoCertificateRollover $true  将此自动更新更改为true

12.更换证书指纹,为了让ADFS证书和使用的认证指纹保持一致

证书指纹可以在证书中查看,进入到IIS服务器的服务器证书,右键点击申请的证书,点击"查看"

Dynamics CR-替换SSL证书

在证书详细信息中,点击"指纹"

Dynamics CR-替换SSL证书

这个就是证书的指纹,我们需要将指纹的空格去掉最终形成的指纹如下:‎6758d9a7ab217766ae267e3ff94a39f657f6f6c1

证书指纹获取成功之后,需要进行指纹替换

在PowerShell中输入如下命令:Set-AdfsSslCertificate Thumbprint 证书指纹

例如: Set-AdfsSslCertificate Thumbprint 6758d9a7ab217766ae267e3ff94a39f657f6f6c1

运行完成之后,重启ADFS服务

13.在CRM中重新部署基于声明的身份验证和配置IFD的身份验证(选择新的证书点击下一步走完整个过程即可)

先配置基于声明的身份验证,后配置IFD的身份验证

Dynamics CR-替换SSL证书

14.更新ADFS中的联合数据源

进入到ADFS管理中,更新这两个联合数据源,先更新基于声明的身份验证,在更新IFD身份验证

Dynamics CR-替换SSL证书

这两个身份验证都是右击,选择"从联合元数据更新(U)..."

15.更新成功之后,重启IIS服务器

总结:

一、更换自建证书主要有如下步骤:

1.在CRM服务器的IIS,证书服务器中创建新的证书申请。在CA服务器上面创建根据证书申请创建新创建证书。并且导入到IIS服务器。同时让Network Service拥有管理和访问证书的权限

2.在安装有ADFS服务的服务器上面,导入新创建的证书(分布式安装)

将CRM服务器中IIS服务器中证书导出为.pfx文件,通过MMC导入到ADFS服务器

  • 1.get-AdfsSslCertificate     获取证书指纹
  • 2.Set-ADFSProperties -AutoCertificateRollover $false  设置自动续期为false
  • 3.Set-AdfsSslCertificate -Thumbprint xxxxxxxxxxx  替换通信服务证书指纹为:xxxxxxxxxxx
  • 4.Set-ADFSProperties -AutoCertificateRollover $true 设置自动续期为true(一定要设置自动续期为true,否则每五天都要到期一次)
  • update-adfscertificate token-decrypting(可选)
  • update-adfscertificate token-signing(可选)

4.重新启动ADFS服务

5.在CRM服务器中重新部署基于声明的身份验证和配置面向Internet的部署

6.更新ADFS中的联合数据源

7.重新启动IIS服务器

二、更换第三方证书主要有如下步骤:

1.在CRM服务器的IIS的证书服务器里面,导入新的.pfx证书,同时让Network Service拥有管理和访问证书的权限。删除掉旧证书

2.在ADFS服务的服务器上面,导入新创建的证书。通过MMC导入到ADFS服务器,同时让Network Service拥有管理和访问证书的权限。

在ADFS管理器中更换通信服务器证书

在PowerShell种执行以下命令

  • 1.get-AdfsSslCertificate     获取旧证书指纹(可选)
  • 2.Set-ADFSProperties -AutoCertificateRollover $false  设置自动续期为false,如果不设置为false的话,是无法更换证书的
  • 3.Set-AdfsSslCertificate -Thumbprint xxxxxxxxxxx  替换通信服务证书指纹为:xxxxxxxxxxx
  • 4.Set-ADFSProperties -AutoCertificateRollover $true 设置自动续期为true,CA验证自动续期
  • update-adfscertificate token-decrypting(可选)
  • update-adfscertificate token-signing(可选)

4.重新启动ADFS服务

5.更新ADFS中的联合数据源

6.在CRM服务器中重新部署基于声明的身份验证和配置面向Internet的部署

5-6可以视情况而定,先6后5,或者先5后6

7.重新启动IIS服务器

注意事项:

本文档证书替换过程适用于Dynamics CRM的单服务器安装,如果是分布式安装,则需要将导入到IIS服务器中的证书导出为.pfx文件,然后通过MMC导入到ADFS服务器中