Microsoft не торопится добавлять поддержку Let’s Encrypt “из коробки” в свои сервисы, а в интернете не так много информации о том, как настроить HTTPS на хостинге Microsoft Azure с Let’s Encrypt и еще меньше информации на русском языке.
Поэтому я решил написать краткую статью о том, как это сделать.
- Из созданного приложения запомните (запишите) Application ID (ИД Приложения), он понадобится на следующих шагах.
- Зайдите в Settings -> Keys (Настройки -> Ключи)
- Создайте новую запись с названием login, неограниченным временем действия и произвольным паролем.
После сохранения пароль будет захеширован и этот хеш надо сохранить, он понадобится в дальнейшем. Если не запишете его сейчас, то в будущем придётся создавать заново – т.к. он не будет виден. - Далее идите в App Services (Службы приложений), в ваше приложение.
- Следующий шаг – добавить права доступа в группу ресурсов (Resource Group) вашего приложения и в группу ресурсов плана службы (App Service Plan) у вашего приложения. Если это одна и та же группа ресурсов, то добавляете в неё, если это разные группы, то добавляете в каждую группу ресурсов.
Для этого открываете группу ресурсов -> Управление доступом (IAM) -> Добавить -> Добавить назначение ролей
Роль – Участник (Contributor)
Выбрать – имя приложения которое вы вводили на втором шаге. - Далее в вашем приложении открываете Расширения (Extensions), и нажимаете “Добавить” (Add).
Выбираете Let’s Encrypt, принимаете условия и добавляете. - Для следующего шага вам необходимо создать Учетную запись хранения. Как это сделать, описано в справке. Все настройки можно оставить по умолчанию. Только Группу ресурсов нужно выбрать такую же, как у вашего приложения. После того, как учетная запись будет создана, нужно её открыть, затем открыть Ключи доступа и взять строку подключения для key1. Она понадобится на следующем шаге.
- Далее заходите в параметры приложения и добавляете две строки подключения с названиями
AzureWebJobsDashboard и AzureWebJobsStorage и значениями взятыми с предыдущего шага.
Если этот шаг не сделать или сделать с ошибкой, то спустя 3 месяца сертификат не перевыпустится. - После выполнения 6го шага вам станет доступен адрес виде http://YOURSITENAME.scm.azurewebsites.net/LetsEncrypt где YOURSITENAME – название приложения.
Откройте этот адрес, и проверьте следующие поля:
Teenant: название вашего аккаунта вида logindomain.onmicrosoft.com.com. Найти его можно в Azure Active Directory
SubscriptionId: идентификатор подписки. Можно найти в информации о приложении.
ClientId: идентификатор приложения из шага 3
ClientSecret – хеш пароля из шага 3
ResourceGroupName и ServicePlanResourceGroupName – группа ресурсов приложения и сервисного плана. - Далее нажимаете Next два раза, затем выбираете домены для которых нужны сертификаты и снова нажимаете Next. Долж но появиться зеленое сообщение о том, что операция прошла успешно
Внимание! Автор статьи не несёт ответственности за последствия.
Инструкция основана на этой статье