适用于:Azure 本地 2311.2 及更高版本;Windows Server 2022 和 Windows Server 2019
本文提供了有关如何自动和手动续订或更改网络控制器证书的说明。 如果在续订网络控制器证书时遇到问题,请联系Microsoft 支持部门。
在软件定义的网络 (SDN) 基础结构中,网络控制器使用基于证书的身份验证来保护与管理客户端的北向信道以及与网络设备(如软件负载均衡器)的南向通信。 网络控制器证书有一个有效期,在有效期过期之后,这些证书将无效且不再受信任,无法再供使用。 强烈建议在过期之前进行续订。
有关网络控制器的概述,请参阅什么是网络控制器?
何时续订或更改网络控制器证书
可以在以下情况下续订或更改网络控制器证书:
证书即将过期。 确实可以在网络控制器证书过期前的任何时间点续订它们。
备注
如果使用同一密钥续订现有证书,则一切都已准备就绪,无需执行任何操作。
想要将自签名证书替换为证书颁发机构 (CA) 签名的证书。
备注
更改证书时,请确保使用与旧证书相同的使用者名称。
网络控制器证书的类型
在 Azure 本地中,每个网络控制器 VM 使用两种类型的证书:
REST 证书。 用于与 REST 客户端(如 Windows Admin Center)的北向通信以及与 Hyper-V 主机和软件负载均衡器的南向通信的单个证书。 所有网络控制器 VM 上都存在此相同证书。 若要续订 REST 证书,请参阅续订 REST 证书。
网络控制器节点证书。 每个网络控制器 VM 上用于节点间身份验证的证书。 若要续订网络控制器节点证书,请参阅续订节点证书。
警告
不要让这些证书过期。 请在过期前续订它们,以避免任何身份验证问题。 此外,在续订证书之前请不要删除任何现有的过期证书。 若要了解证书的过期日期,请参阅查看证书有效期。
查看证书有效期
在每个网络控制器 VM 上使用以下 cmdlet 检查证书的到期日期:
Get-ChildItem Cert:\LocalMachine\My | where{$_.Subject -eq "CN=<Certificate-subject-name>"} | Select-Object NotAfter, Subject
若要获取 REST 证书的有效期,请将“Certificate-subject-name”替换为网络控制器的 RestIPAddress 或 RestName。 可从
Get-NetworkController
cmdlet 获取此值。若要获取节点证书的有效期,请将“Certificate-subject-name”替换为网络控制器 VM 的完全限定的域名 (FQDN)。 可从
Get-NetworkController
cmdlet 获取此值。
续订网络控制器证书
可以自动或手动续订网络控制器证书。
使用 Start-SdnCertificateRotation
cmdlet 可以自动续订网络控制器证书。 证书自动续订有助于最大程度地减少因证书过期而导致停机或计划外服务中断的情况。
在以下情况下,可以使用 Start-SdnCertificateRotation
cmdlet 自动续订网络控制器证书:
- 自签名证书。 使用
Start-SdnCertificateRotation
cmdlet 生成自签名证书,并在所有网络控制器节点中续订这些证书。 - 带上自己的证书。 你使用自己的证书(自签名或 CA 签名的证书),并使用
Start-SdnCertificateRotation
cmdlet 续订证书。 该 cmdlet 在所有网络控制器节点上安装证书,并将其分发到其他 SDN 基础结构组件。 - 预安装的证书。 你已在网络控制器节点上安装所需的证书。 使用
Start-SdnCertificateRotation
cmdlet 为其他 SDN 基础结构组件续订这些证书。
有关如何创建和管理 SDN 证书的详细信息,请参阅管理软件定义的网络的证书。
要求
下面是自动续订证书所要满足的要求:
必须在某个网络控制器节点上运行
Start-SdnCertificateRotation
cmdlet。 有关安装说明,请参阅安装 SdnDiagnostics 模块。必须拥有以下两种帐户的凭据才能授权网络控制器节点之间的通信:
Credential
,用于指定在网络控制器上拥有本地管理员特权的用户帐户。NcRestCredential
,用于指定有权访问网络控制器 REST API 的用户帐户。 它是ClientSecurityGroup
中Get-NetworkController
的成员。 此帐户用于调用 REST API 以使用新证书更新凭据资源。
有关为网络控制器北向通信配置授权的详细信息,请参阅为北向通信授权。
自动续订自签名证书
可以使用 Start-SdnCertificateRotation
cmdlet 生成新的自签名证书,并自动为所有网络控制器节点续订这些证书。 默认情况下,该 cmdlet 生成有效期为三年的证书,但你可以指定不同的有效期。
在某个网络控制器节点上执行这些步骤,以生成并自动续订自签名证书:
若要生成自签名证书,请运行
Start-SdnCertificateRotation
cmdlet。 可以结合-Force
参数使用该 cmdlet,以避免在轮换过程中出现任何确认提示或手动输入。若要生成有效期默认为三年的自签名证书,请运行以下命令:
Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -GenerateCertificate -CertPassword (Get-Credential).Password -Credential (Get-Credential)
若要生成具有特定有效期的自签名证书,请使用
NotAfter
参数指定有效期。例如,若要生成有效期为五年的自签名证书,请运行以下命令:
Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -GenerateCertificate -CertPassword (Get-Credential).Password -NotAfter (Get-Date).AddYears(5) -Credential (Get-Credential)
输入凭据。 系统将提示你两次,要求提供两种类型的凭据:
- 出现第一次提示时,请输入密码以保护生成的证书。 用户名可以是任意内容,系统不会使用它。
- 出现第二次提示时,请使用对所有网络控制器节点拥有管理员访问权限的凭据。
生成新证书后,你将收到警告,它要求你确认是否要继续执行证书轮换过程。 警告文本显示了将由新生成的证书替换的网络控制器证书列表。 键入
Y
确认。下面是警告的示例屏幕截图:
确认继续轮换证书后,可以在 PowerShell 命令窗口中查看正在进行的操作的状态。
重要
在该 cmdlet 完成之前请不要关闭 PowerShell 窗口。 根据您的环境,例如,群集中的网络控制器节点数量,可能需要几分钟或一个多小时才能完成。
下面是 PowerShell 命令窗口的示例屏幕截图,其中显示了正在进行的操作的状态:
自动续订你自己的证书
除了生成自签名的网络控制器证书外,你还可以使用自己的证书(自签名或 CA 签名的证书),并使用 Start-SdnCertificateRotation
cmdlet 续订这些证书。
在某个网络控制器节点上执行这些步骤,以自动续订你自己的证书:
以
.pfx
格式准备证书,并将其保存在从中运行了Start-SdnCertificateRotation
cmdlet 的某个网络控制器节点上的某个文件夹中。 可以结合-Force
参数使用该 cmdlet,以避免在轮换过程中出现任何确认提示或手动输入。若要开始续订证书,请运行以下命令:
Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -CertPath "<Path where you put your certificates>" -CertPassword (Get-Credential).Password -Credential (Get-Credential)
输入凭据。 系统将提示你两次,要求提供两种类型的凭据:
- 在出现第一次提示时,请输入证书的密码。 用户名可以是任意内容,系统不会使用它。
- 出现第二次提示时,请使用对所有网络控制器节点拥有管理员访问权限的凭据。
你将收到警告,它要求你确认是否继续执行证书轮换过程。 警告文本显示了将由新生成的证书替换的网络控制器证书列表。 键入
Y
确认。下面是警告的示例屏幕截图:
确认继续轮换证书后,可以在 PowerShell 命令窗口中查看正在进行的操作的状态。
重要
在该 cmdlet 完成之前请不要关闭 PowerShell 窗口。 根据您的环境,例如,群集中的网络控制器节点数量,可能需要几分钟或一个多小时才能完成。
自动续订预安装的证书
在此场景中,你已在网络控制器节点上安装所需的证书。 使用 Start-SdnCertificateRotation
cmdlet 在其他 SDN 基础结构组件上续订这些证书。
在某个网络控制器节点上执行这些步骤,以自动续订预安装的证书:
使用你偏好的方法在所有网络控制器节点上安装网络控制器证书。 确保证书受其他 SDN 基础结构组件(包括 SDN MUX 服务器和 SDN 主机)的信任。
创建证书轮换配置:
若要生成默认的证书轮换配置,请运行以下命令:
Import-Module -Name SdnDiagnostics -Force $certConfig = New-SdnCertificateRotationConfig $certConfig
检查默认的证书轮换配置,确认自动检测到的证书是否是你要使用的证书。 默认情况下,此配置会检索要使用的、最新颁发的证书。
下面是证书轮换配置示例:
PS C:\Users\LabAdmin> $certConfig Name Value ---- ----- ws22ncl.corp.contoso.com F4AAF14991DAF282D9056E147AE60C2C5FE80A49 ws22nc3.corp.contoso.com BC3E6B090E2AA80220B7BAED7F8F981A1E1DD115 ClusterCredentialType X509 ws22nc2.corp.contoso.corn 75DC229A8E61AD855CC445C42482F9F919CC1077 NcRestCert 029D7CA0067A60FB24827D8434566787114AC30C
其中:
- ws22ncx.corp.contoso.com 显示每个网络控制器节点的证书指纹。
- ClusterCredentialType 显示网络控制器群集身份验证类型。 如果身份验证类型不是 X509,则不会使用节点证书,并且该证书不会显示在输出中。
- NcRestCert 显示网络控制器 REST 证书的指纹。
(可选)如果生成的
$certConfig
不正确,你可以通过指定新证书的指纹来更改它。 例如,若要更改网络控制器 Rest 证书的指纹,请运行以下命令:$certConfig.NcRestCert = <new certificate thumbprint>
开始轮换证书。 可以结合
-Force
参数使用该 cmdlet,以避免在轮换过程中出现任何确认提示或手动输入。Import-Module -Name SdnDiagnostics -Force Start-SdnCertificateRotation -CertRotateConfig $certConfig -Credential (Get-Credential)
当系统提示你输入凭据时,请输入对所有网络控制器节点拥有管理员访问权限的凭据。
你将收到警告,它要求你确认是否继续自动轮换证书。 该警告显示了将被替换你自己的证书的网络控制器证书列表。 键入
Y
确认。下面是提示你确认轮换证书的警告的示例屏幕截图:
确认继续轮换证书后,可以在 PowerShell 命令窗口中查看正在进行的操作的状态。
重要
在该 cmdlet 完成之前请不要关闭 PowerShell 窗口。 根据您的环境,例如,群集中的网络控制器节点数量,可能需要几分钟或一个多小时才能完成。
在 Windows Admin Center 中重新导入证书
如果已续订网络控制器 REST 证书并使用 Windows Admin Center 管理 SDN,则必须从 Windows Admin Center 中删除 Azure 本地实例,然后再次添加它。 通过执行此操作,你可以确保 Windows Admin Center 导入续订的证书并将其用于 SDN 管理。
按照以下步骤在 Windows Admin Center 中重新导入续订的证书:
- 在 Windows Admin Center 中,从顶部下拉菜单中选择“群集管理器”。
- 选择要删除的群集,然后选择“删除”。
- 选择“添加”,输入群集名称,然后选择“添加”。
- 加载群集后,选择“SDN 基础结构”。 这会强制 Windows Admin Center 自动重新导入续订的证书。
后续步骤
- 更新 Azure 本地的 SDN 基础结构。