Я настроил шлюз приложений и хранилище ключей с помощью Terraform. Кажется, что со шлюзом приложений все работает, если я храню сертификат локально, но если я настрою его на использование сертификата из хранилища ключей, а затем перейду на сайт, я получу ошибку ERR_SSL_UNRECOGNIZED_NAME_ALERT
, подразумевающую, что прослушиватель отключен.
Я видел, как другие сообщали о подобных проблемах (например, Шлюз приложений Azure, как подключиться к SSL-сертификату в другой подписке Azure?); хотя ни один из ответов мне не помог / некоторые уже устарели.
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
был настроен с виртуальной сетью, в которой находятся мои контроллеры домена; эти контроллеры домена имеют условные DNS-перенаправители для различных зон, включая Virtual Network Links
перенаправление запросов на vaultcore.azure.net
. Это означает, что когда наши контроллеры домена используются для DNS, они преобразуют ресурсы во внутренний IP-адрес частных конечных точек.
Однако, хотя виртуальная сеть, в которой AppGW правильно настроен для использования наших DNS-серверов и, следовательно, должна использовать внутренний IP-адрес для безопасного подключения к Key Vault, похоже, этого не произошло.
Добавив еще один 168.63.129.16
в нашу зону Virtual Network Link
, ориентированный на виртуальную сеть App Gateway, все заработало.
Примечание. Сразу после внесения вышеуказанных изменений все по-прежнему не удалось; Я обнаружил, что запуск 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
, чтобы убедиться, что строка отличается и чтобы изменения были обнаружены.
Надеюсь, это поможет другим в будущем.