Привязка SSL-сертификата к службе приложений с помощью Azure CLI и Keyvault - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь использовать интерфейс командной строки Azure для настройки SSL-сертификатов службы приложений Azure, которые хранятся в Azure KeyVault. Я новичок в Azure CLI и у меня возникают проблемы с поиском полного набора примеров кода, который делает это. Я нашел документацию / примеры отдельных команд, но у меня проблемы с их объединением. Определенно был бы признателен за некоторую помощь / руководство, поскольку я чувствую, что это распространенный сценарий.

Сначала я подумал, что это будет простая команда типа «связывание». Сертификаты уже загружены в keyvault, поэтому служба приложений Azure, возьмите их, вот $ pfxPassword.

Не похоже, что это возможно. Я нашел некоторую документацию, которая выглядит так, как будто вам нужно скачать Cert из keyvault, а затем загрузить его.

Мне потребовалось немного времени, чтобы понять, что вы не используете для этого сертификат az keyvault ... вам нужно использовать z секретную загрузку.

Затем я нашел несколько других команд о том, как загрузить сертификат, получить отпечаток большого пальца и привязать сертификат к службе приложения.

Я связал эти трикоманды вместе, но я не могу заставить его работать.

#download the cert
az keyvault secret download --file $fileName --vault-name $vaultName --name $certName;

#upload the cert and get the thumbprint
$thumbprint=az webapp config ssl upload --certificate-file $fileName --certificate-password $pfxPassword --name $site_name --resource-group $ResourceGroupName --query thumbprint --output tsv

#bind the uploaded cert to the app service.
az webapp config ssl bind --certificate-thumbprint $thumbprint --ssl-type SNI --name $site_name --resource-group $ResourceGroupName

Я могу подтвердить, что первая команда загружает сертификат. (Через некоторое время я смог разобраться с импортом в мою машину для разработки на win10 - даже несмотря на то, что сертификаты были загружены в keyvault с паролем, их загрузка удаляла пароль).

К сожалению, похоже, что вторая команда (загрузите и получите отпечаток большого пальца) ТРЕБУЕТ пароль.

Каков «правильный» способ сделать это?

Спасибо за ваше руководство / совет.

1 Ответ

1 голос
/ 16 октября 2019

Согласно моему тесту, когда мы используем интерфейс командной строки Azure для загрузки сертификата в виде файла pfx из хранилища ключей Azure, он имеет пустой пароль. Поэтому, когда мы используем CLI для загрузки файла pfx в веб-приложение Azure, мы можем использовать следующую команду

az webapp config ssl upload --certificate-file "<pfx file name>"  --name "<web name>" --resource-group "<group name>"  --certificate-password "" --query thumbprint --output tsv
az login

# upload certificate to Azure key vault
az keyvault certificate import --file "E:\Cert\P2SChildCert.pfx" --password "" --name "test1234" --vault-name "testkey08"

# download certificate as pfx file
az keyvault secret download --file "test2.pfx" --vault-name "testkey08" --name "test1234" --encoding base64

# upload the pfx file to Azue web app
az webapp config ssl upload --certificate-file "test2.pfx"  --name "andywebsite" --resource-group "andywebbot"  --certificate-password "" --query thumbprint --output tsv

enter image description here

Кроме того,если ваш сертификат был сохранен в хранилище ключей Azure, мы можем напрямую импортировать его в веб-приложение Azure через портал Azure. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...