ADFS中有三种证书,令pai解密,令pai签名以及服务通信证书,这三种证书都是有有效期的,到期都需要进行更换,那其中令pai解密和令pai签名是ADFS自带的证书,无法更换,只需要指令更新即可,唯独服务通信证书,也就是常说的公网证书,需要进行重新导入,设置。如果在证书有效期内对公网证书进行了修改,如增加新的SAN会重新生成一张公网证书,那么这时候也是需要更换成新的公网证书的。

image.png

首先我们需要更新ADFS的令pai签名和令pai解密证书,在ADFS服务器上运行PowerShell命 令:

Update-AdfsCertificate -CertificateType:token-signing -Urgent:$true

Update-AdfsCertificate -CertificateType:Token-Decrypting -Urgent:$true

接下来我们需要连到Office365远程powershell,通过以下命令来更新联盟域(如果又多个联盟域请针对每个域名执行一次update命令)

Update-MsolFederatedDomain -DomainName ucssi.cn

完成以上步骤后,将新的公网证书装到ADFS服务器上(注意应该是PFX格式),运行-mmc-添加证书-个人证书-导入,此部分比较简单就不占用过多篇幅来说明了。

安装完成公网证书后,在ADFS服务器上获取新证书的信息,主要查看其Thumbprint的值,   运行命令:dir cert:\localmachine\my | fl

通过以上命令我们可以获取到当前最新公网证书的Thumbprint的值(从生效日期到过期日期就能判别出来)

然后,使用如下命令更新ADFS服务器上的服务通信证书ThumbPrint值:

Set-AdfsCertificate -CertificateType Service-Communications -Thumbprint #你的证书Thumbprint值#

Set-AdfsSslCertificate -Thumbprint #你的证书Thumbprint值#

以上步骤完成后,记得重启ADFS服务,可以在图形化界面重启ADFS服务,也可以使用以下命令重启ADFS服务

Restart-Service adf***v

最后,还需要连接Office365远程powershell更新联盟域(如果又多个联盟域请针对每个域名执行一次update命令)

Update-MsolFederatedDomain -DomainName ucssi.cn

以上是更换ADFS服务器证书的步骤,那么ADFS Proxy服务器上的公网证书如何更换呢?方法也很简单,同样需要将最新的公网证书导入服务器,然后使用dir cert:\localmachine\my | fl命令来获取最新公网证书的Thumbprint值,然后使用以下命令更新ADFS Proxy证书

Set-WebApplicationProxySslCertificate –Thumbprint #你的证书Thumbprint值#

运行完成后需要重启ADFS和Web Application Proxy 服务


完成以上所有步骤后即可完成整个ADFS证书更换。


小总结:

ADFS证书更换并不是将新证书导入,然后在ADFS管理中心选择新证书那么简单。也是需要给这个证书分配服务的,这点通过Exchange的证书来理解就恍然大悟了!