我已经使用 Terraform 设置了应用程序网关和密钥保管库。 如果我在本地存储证书,所有这些似乎都可以与应用程序网关一起使用,但是如果我将其设置为使用密钥保管库中的证书,然后浏览到该站点,我会收到错误
ERR_SSL_UNRECOGNIZED_NAME_ALERT
,这意味着侦听器已被禁用。
我看到其他人报告了类似的问题(例如,Azure 应用程序网关,如何链接到不同 Azure 订阅上的 SSL 证书?);虽然那里的答案都不适合我/有些答案现在已经过时了。
ERR_SSL_UNRECOGNIZED_NAME_ALERT
异常重新出现)。 Set-AzApplicationGatewaySslCertificate -ApplicationGateway $appGw -Name 'wildcard-example-com' -KeyVaultSecretId 'https://myKeyVault.vault.azure.net/secrets/wildcard-example-com/' -Verbose | Set-AzApplicationGateway -Verbose
UK South
)。Microsoft.KeyVault service endpoint
Disable public access
和 Allow trusted Microsoft services to bypass this firewall
get
秘密权限(事实上,我目前已授予所有可用权限,只是为了将安全策略视为潜在原因)。 注意:我正在使用 vault access policy
;不是RBAC
。/secrets/
路径,并且不包含版本信息。我错过了什么,或者我可以采取任何调试步骤来获取有关 AppGW 为何无法从 KeyVault 加载此证书的更多信息吗?
我与 MS 支持人员通话,他们解决了我的问题。
密钥保管库使用的
private dns zone
,privatelink.vaultcore.azure.net
已配置了我的域控制器所在的 VNet;这些域控制器具有针对各个区域的条件 dns 转发器,包括 Virtual Network Links
将请求转发到 vaultcore.azure.net
。 这意味着当我们的 DC 用于 DNS 时,它们会将资源解析为专用端点的内部 IP。但是,尽管 AppGW 所连接的 VNet 已正确配置为使用我们的 DNS 服务器,因此应该使用内部 IP 安全地连接到 Key Vault,但这似乎并没有发生。
通过向我们的
168.63.129.16
区域添加另一个
Virtual Network Link
,以应用程序网关的 VNet 为目标,一切都开始工作。注意:进行上述更改后,仍然失败;我发现运行 privatelink.vaultcore.azure.net
导致 AppGW 重新尝试提取证书,从而触发它利用现已修复的问题。 (我不确定这是否重要,但每次运行上述命令时,我都会交替包含
Set-AzApplicationGatewaySslCertificate -ApplicationGateway $appGw -Name 'wildcard-example-com' -KeyVaultSecretId 'https://myKeyVault.vault.azure.net:443/secrets/wildcard-example-com/' -Verbose | Set-AzApplicationGateway -Verbose
端口信息以确保字符串不同,以便检测到更改。希望这对将来的其他人有帮助。