Azure Stack Hub 有一个公共网络基础设施,该基础设施使用外部可访问的公共 IP 地址,用于一小部分 Azure Stack Hub 服务和可能用于租户的 VM。 在 Azure Stack Hub 部署期间,需要具有这些 Azure Stack Hub 公共基础结构终结点的相应 DNS 名称的 PKI 证书。 本文提供有关以下内容的信息:
- Azure Stack Hub 的证书要求。
- Azure Stack Hub 部署所需的必需证书。
- 部署增值资源提供程序时所需的可选证书。
注释
默认情况下,Azure Stack Hub 还使用从内部 Active Directory 集成证书颁发机构(CA)颁发的证书在节点之间进行身份验证。 若要验证证书,所有 Azure Stack Hub 基础结构计算机都信任内部 CA 的根证书,方法是将该证书添加到其本地证书存储。 Azure Stack Hub 中没有证书的固定或筛选。 根据目标的 FQDN 验证每个服务器证书的 SAN。 还会验证整个信任链,以及证书到期日期(标准 TLS 服务器身份验证,无需证书固定)。
证书要求
以下列表描述了常规证书颁发、安全性和格式设置要求:
- 证书必须从内部证书颁发机构或公共证书颁发机构颁发。 如果使用公共证书颁发机构,则必须将其包含在基础操作系统映像中,作为微软受信任的根颁发机构计划的一部分。 如需完整列表,请查看参与者列表 - Microsoft 受信任根计划。
- Azure Stack Hub 基础结构必须具有对证书中发布的证书颁发机构证书吊销列表(CRL)位置的网络访问权限。 此 CRL 必须是 http 终结点。 对于断开连接的部署,如果无法访问 CRL 终结点,则不支持由公共证书颁发机构 (CA) 颁发的证书。 有关详细信息,请参阅 在断开连接的部署中受损或不可用的功能。
- 在 1903 年之前的版本中进行证书轮换时,证书必须由用来签署部署时提供的证书的同一内部证书颁发机构或上述任何公共证书颁发机构颁发。
- 轮换内部版本 1903 及更高版本的证书时,证书可以由任何企业或公共证书颁发机构来颁发。
- 不支持自签名证书。
- 对于部署和轮换,您可以选择使用单个证书覆盖证书使用者名称和使用者可选名称(SAN)中的所有名称空间。 或者,可以为计划利用的 Azure Stack Hub 服务所需的每个命名空间使用单个证书。 这两种方法都需要将通配符用于需要它们的终结点,例如 KeyVault 和 KeyVaultInternal。
- 证书签名算法不应为 SHA1。
- 证书格式必须是 PFX,因为 Azure Stack Hub 安装需要公钥和私钥。 私钥必须设置本地计算机密钥属性。
- PFX 加密必须是 3DES(从 Windows 10 客户端或 Windows Server 2016 证书存储导出时,此加密是默认的)。
- 证书 pfx 文件在其“密钥使用情况”字段中必须具有“数字签名”和“密钥加密”两个值。
- 证书 pfx 文件必须具有“增强密钥使用”字段中的值“服务器身份验证(1.3.6.1.5.5.5.7.3.1)”和“客户端身份验证”(1.3.6.1.5.7.3.2)。
- 证书的“颁发给:”字段不能与其“颁发者:”字段相同。
- 部署时,所有证书 pfx 文件的密码必须相同。
- 证书 pfx 的密码必须是复杂的密码。 记下此密码,因为将其用作部署参数。 密码必须满足以下密码复杂性要求:
- 最小长度为 8 个字符。
- 以下字符中至少有三个字符:大写字母、小写字母、0-9 的数字、特殊字符、非大写或小写字母字符。
- 确保主题备用名称扩展(x509v3_config)中的主题名称和主题备用名称匹配。 使用者备用名称字段允许指定其他主机名(网站、IP 地址、公用名)以受单个 SSL 证书保护。
注释
不支持自签名证书。
在断开连接模式下部署 Azure Stack Hub 时,建议使用企业证书颁发机构颁发的证书。 这很重要,因为访问 Azure Stack Hub 终结点的客户端必须能够联系证书吊销列表 (CRL)。
注释
支持在证书的信任链中存在中间证书颁发机构。
必需证书
本部分中的表介绍了 Microsoft Entra ID 和 AD FS Azure Stack Hub 部署所需的 Azure Stack Hub 公共终结点 PKI 证书。 证书要求按区域分组,使用的命名空间以及每个命名空间所需的证书。 该表还描述了解决方案提供程序为每个公共终结点复制不同证书的文件夹。
需要为每个 Azure Stack Hub 公共基础结构终结点提供相应的 DNS 名称的证书。 每个终结点的 DNS 名称都以格式 <prefix>.<region>.<fqdn>
表示。
对于部署,这些 <region>
和 <fqdn>
值必须与为 Azure Stack Hub 系统选择的区域和外部域名匹配。 例如,如果区域为 Redmond 且外部域名 contoso.com,则 DNS 名称的格式为 <prefix>.redmond.contoso.com
。 这些 <prefix>
值由Microsoft保留,用于描述由证书保护的终结点。 此外, <prefix>
外部基础结构终结点的值取决于使用特定终结点的 Azure Stack Hub 服务。
对于生产环境,我们建议为每个终结点生成单个证书,并复制到相应的目录中。 对于开发环境,可以提供一个单一的通配符证书,该证书涵盖“使用者”字段和“使用者可选名称”(SAN)字段中的所有命名空间,并复制到所有目录中。 涵盖所有终结点和服务的单一证书是不安全的态势,因此仅用于开发。 请记住,这两个选项都要求对需要通配符证书的终结点(例如 acs 和 Key Vault)使用通配符证书。
注释
在部署期间,必须将证书复制到与要部署的标识提供者匹配的部署文件夹(Microsoft Entra ID 或 AD FS)。 如果将单个证书用于所有终结点,则必须将该证书文件复制到每个部署文件夹中,如下表所述。 文件夹结构在 部署虚拟机 中预生成,可在 C:\CloudDeployment\Setup\Certificates 中找到。
部署文件夹 | 所需的证书主题和主题备用名称(SAN) | 范围(每个区域) | 子域命名空间 |
---|---|---|---|
公共门户 | portal.<region>.<fqdn> |
门户 | <region>.<fqdn> |
管理门户 | adminportal.<region>.<fqdn> |
门户 | <region>.<fqdn> |
Azure 资源管理器公共版 | management.<region>.<fqdn> |
Azure Resource Manager | <region>.<fqdn> |
Azure 资源管理器管理员 | adminmanagement.<region>.<fqdn> |
Azure Resource Manager | <region>.<fqdn> |
ACSBlob | *.blob.<region>.<fqdn> (通配符 SSL 证书) |
Blob 存储 | blob.<region>.<fqdn> |
ACSTable | *.table.<region>.<fqdn> (通配符 SSL 证书) |
表存储 | table.<region>.<fqdn> |
ACSQueue | *.queue.<region>.<fqdn> (通配符 SSL 证书) |
队列存储 | queue.<region>.<fqdn> |
KeyVault | *.vault.<region>.<fqdn> (通配符 SSL 证书) |
Key Vault | vault.<region>.<fqdn> |
KeyVaultInternal | *.adminvault.<region>.<fqdn> (通配符 SSL 证书) |
内部密钥保管库 | adminvault.<region>.<fqdn> |
管理扩展主机 |
*.adminhosting.<region>.<fqdn> (通配符 SSL 证书) |
管理员扩展主机 | adminhosting.<region>.<fqdn> |
公共扩展主机 |
*.hosting.<region>.<fqdn> (通配符 SSL 证书) |
公共扩展主机 | hosting.<region>.<fqdn> |
如果使用 Microsoft Entra 部署模式部署 Azure Stack Hub,则只需请求上表中列出的证书。 如果使用 AD FS 部署模式部署 Azure Stack Hub,则还必须请求下表中所述的证书:
部署文件夹 | 所需的证书主题和主题备用名称(SAN) | 范围(每个区域) | 子域命名空间 |
---|---|---|---|
ADFS | adfs.<region>.<fqdn> (SSL 证书) |
AD FS | <region>.<fqdn> |
Graph | graph.<region>.<fqdn> (SSL 证书) |
Graph | <region>.<fqdn> |
重要
本节中列出的所有证书必须具有相同的密码。
可选 PaaS 证书
如果计划在部署和配置 Azure Stack Hub 后部署 Azure Stack Hub PaaS 服务(例如 SQL、MySQL、应用服务或事件中心),则必须请求其他证书来涵盖 PaaS 服务的终结点。
重要
用于资源提供程序的证书必须与用于全局 Azure Stack Hub 终结点的证书具有相同的根证书颁发机构。
下表描述了资源提供程序所需的终结点和证书。 无需将这些证书复制到 Azure Stack Hub 部署文件夹。 而是在资源提供程序安装期间提供这些证书:
范围(每个区域) | 证书 | 必需的证书主题和主题备用名称(SAN) | 子域命名空间 |
---|---|---|---|
App Service | Web 流量默认 SSL 证书 | *.appservice.<region>.<fqdn> *.scm.appservice.<region>.<fqdn> *.sso.appservice.<region>.<fqdn> (多域通配型 SSL 证书1) |
appservice.<region>.<fqdn> scm.appservice.<region>.<fqdn> |
App Service | API | api.appservice.<region>.<fqdn> (SSL 证书2) |
appservice.<region>.<fqdn> scm.appservice.<region>.<fqdn> |
App Service | FTP | ftp.appservice.<region>.<fqdn> (SSL 证书2) |
appservice.<region>.<fqdn> scm.appservice.<region>.<fqdn> |
App Service | SSO | sso.appservice.<region>.<fqdn> (SSL 证书2) |
appservice.<region>.<fqdn> scm.appservice.<region>.<fqdn> |
事件中心 | SSL | *.eventhub.<region>.<fqdn> (通配型 SSL 证书) |
eventhub.<region>.<fqdn> |
SQL、MySQL | SQL 和 MySQL | *.dbadapter.<region>.<fqdn> (通配型 SSL 证书) |
dbadapter.<region>.<fqdn> |
1 需要一个具有多个通配符主题可选名称的证书。 所有公共证书颁发机构都可能不支持单个证书上的多个通配符 SAN。
2 不能使用通配符证书来代替这三个*.appservice.<region>.<fqdn>
证书(api.appservice.<region>.<fqdn>
ftp.appservice.<region>.<fqdn>
和sso.appservice.<region>.<fqdn>
)。 Appservice 显式要求对这些终结点使用单独的证书。