Поиск по сайту:

Как настроить Let’s Encrypt SSL для веб-приложения Azure


Хотя Azure предоставляет множество инструментов, в нем есть не все. Мы рассмотрим, как можно настроить функциональный Let’s Encrypt SSL для любого веб-приложения Azure, чтобы обеспечить необходимый уровень безопасности для всех стандартных онлайн-операций.

Что такое Let’s Encrypt?

Прежде всего, давайте уберем Let’s Encrypt с дороги. Итак, что это? Это автоматизированный, бесплатный, открытый центр сертификации. Это означает, что вы можете получить совершенно бесплатные сертификаты SLL и изменить структуру URL по умолчанию с HTTP:// на HTTP://.

Но в чем подвох? Неужели все так просто? Ну, сертификаты SSL длятся всего 90 дней, а не несколько лет, как другие сертификаты. Тем не менее, на это есть причина. Это связано с тем, что автоматизация поощряется, и вы можете сделать свой опыт использования SSL незапоминающимся (если у вас есть некоторые сценарии или фоновый процесс, который автоматически обновляет и устанавливает сертификаты).

В настоящее время действительно нет причин не использовать Let’s Encrypt, и это очевидно из-за того, что большинство использует его в различных отраслях и связанных с ними веб-приложениях.

Предпосылки для настройки:

  1. Активная учетная запись Azure. (Студенты могут получить бесплатные ресурсы Azure.)
  2. Любое веб-приложение, которое размещается через службу приложений. Стек не имеет значения.
  3. Пользовательская запись DNS, указывающая на веб-приложение.

В идеальном мире ваша служба приложений и план службы приложений находятся в одной группе ресурсов. Но можно обойтись и без этого.

Шаг 1. Учетная запись хранения для веб-заданий

Итак, первый шаг — создать учетную запись хранения Azure, которая является расширением, которое позволит нам продлевать сертификацию каждые 90 дней с помощью веб-заданий Azure.

Аккаунт не должен принадлежать BlobStorage, потому что он не будет работать. Это должно быть либо «Storage», либо «StorageV2».

Теперь, когда это сделано. Вы добавите два отдельных параметра: «AzureWebJobsDashboard» и «AzureWebJobsStorage» со строкой, которая связывает их с ранее созданной учетной записью хранения.

Строка может выглядеть так:

DefaultEndpointsProtocol=https;AccountName=[ваш_аккаунт];AccountKey=[ваш_ключ];

Шаг 2: Автоматизация процесса

Чтобы предыдущее расширение работало без нашего вмешательства, мы должны создать «Субъект-службу Azure», который работает на основе понятия делегирования через запись Azure AD.

Перейдите к Azure Active Directory, в которой вы хотите создать новое приложение. На панели выберите «Регистрация приложений».

Вы можете возиться с настройками по своему усмотрению, но это все, что касается субъекта-службы.

Шаг 3: Расширение Let’s Encrypt

Теперь, когда у вас есть все второстепенные предварительные условия, вы можете, наконец, установить расширение и настроить его соответствующим образом.

Перейдите в «Службу приложений» и найдите расширение Azure Let’s Encrypt с помощью «SJKP». После его установки вы можете приступить к настройке.

Чтобы настроить расширение, вам нужно перейти на страницу «Дополнительные инструменты» в «Службе приложений». Вы можете найти его, выполнив поиск в строке поиска, и, вероятно, вы попадете на такой сайт: https://yourdomain.scm.azurewebsite.net.

Чтобы получить доступ к настройкам, нажмите кнопку Расширения сайта и нажмите Запустить. Теперь должна открыться страница конфигурации, и у вас будут следующие параметры.

  • Владелец: директор Azure AD, в котором был создан ваш субъект-служба.
  • ClientID: тот же идентификатор клиента, что и раньше.
  • ClientSecret: тот же секрет клиента, что и раньше.
  • ResourceGroupName: название группы ресурсов службы приложений, которую вы используете.
  • SubscriptionID: идентификатор вашей подписки, которую вы используете для группы ресурсов.
  • Обновить настройки приложения: всегда устанавливайте значение True, чтобы сохранить все ваши настройки. В противном случае параметры WebsJob для установки новых сертификатов будут недоступны.
  • ServicePlanResourceGroupName. Если служба приложений и план обслуживания находятся в одной группе, имя будет таким же, как и ResourceGroupName. В противном случае вы введете название группы ресурсов фактического расположения Тарифного плана.

После настройки всех параметров вы перейдете к обзору сертификатов, привязок SSL и пользовательских доменов. Поскольку вам все еще нужно их сгенерировать, вы можете выбрать свои домены для запроса и отправить «Получить запрос» для SSL-сертификата.

Но прежде чем вы это сделаете, вы должны добавить свой адрес электронной почты, чтобы вы могли получать оповещения, если что-то пойдет не так с сертификатом (например, он устарел или не обновлен).

И это все. Теперь все настроено, и вы можете насладиться наградой за выполнение задания самостоятельно.

Возможные проблемы

Поскольку расширению требуется доступ к вашим страницам для авторизации домена, убедитесь, что URL-адрес общедоступен через HTTP://yourdomain.com/.well-known/acme-challenge/.

Если возникает ошибка и URL-адрес не достигается, вероятно, у вас есть набор правил в файле web.config, который запрещает доступ, или ваш HTTPS применяется через настройки службы приложений.

Кроме того, поскольку Let’s Encrypt использует механизм HTTP-01 в ACME, он поместит случайный токен в файл на вашем веб-сервере, а затем попытается получить его через HTTP. Если вы установите для веб-приложения только https, запрос будет отклонен, чего вы хотите избежать.