Долго искал, как безболезненно настроить SSL сертификат от Let's Encrypt на Microsoft Azure. В рунете с этим оказались проблемы, но на просторах большого интернета нашлась очень и очень годная статья, по которой мне удалось настроить это шайтанство. Думаю, для новичков, у которых проблемы с иностранными языками (бывает такое, но все мы учимся), перевод статьи пригодится.

image

Итак, начнем.

1. Сервисный план обслуживания нашего веб-приложения на Azure должен быть не ниже «Стандартного» (проще говоря, любой, кроме Basic — Базового).

image

2. Свой домен. Для настройки SSL сертификата необходим кастомный домен, который можно прикрутить в меню «Пользовательские домены» в панели настроек своего приложения. Настроить SSL сертификат для домена, подобного .azurewebsites.net нельзя.



Магия
Следующие два пункта я плохо понимаю, но и без них работает замечательно. Но это у меня, как будет работать у вас — не знаю, поэтому, если кто в курсе, что это такое и с чем его едят — буду рад и добавлю в статью.

3. Создаем аккаунт хранилища данных. Подробно описано в этой статье, но она на англ. языке. По-простому: . Создаем.

4. Настраиваем

5. Настраиваем доступ к нашим службам

Устанавливаем и запускаем PowerShell от имени администратора. Устанавливаем AzurePowerShellModule

# Install the Azure Resource Manager modules from the PowerShell Gallery
  Install-Module AzureRM

  # Install the Azure Service Management module from the PowerShell Gallery
  Install-Module Azure

# To make sure the Azure PowerShell module is available after you install
  Get-Module -ListAvailable Azure*

 Import-Module "C:\Program Files\WindowsPowerShell\Modules\Azure\XXXX\azure.psd1"
  Import-Module "C:\Program Files\WindowsPowerShell\Modules\Azure\XXXX\expressroute\expressroute.psd1"

Логинимся в Azure

Login-AzureRmAccount

Задаем логин-пароль для дальнейшей авторизации приложения Let's Encrypt:

$uri = 'http://{some random name}'
$password = '{some strong password}'

Выполняем несколько магических комманд)))

$app = New-AzureRmADApplication -DisplayName {some display name} -HomePage $uri -IdentifierUris $uri -Password $password

New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId

New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $app.ApplicationId

$app.ApplicationId

Теперь у нас есть
ClientSecret = $password
ClientID = ApplicationID
Запомним их.

Установка Let's Encrypt

Идем в SCM консоль (https://{your site name}.scm.azurewebsites.net), переходим в раздел Расширения(Site Extentions), выбираем пункт «Галерея» и ищем там модуль Let's Encrypt Azure. Устанавливаем!

image

После установки модуля перезапускаем сайт (кнопка Restart Site), и запускаем модуль. Теперь нам осталось его настроить.

image

Заполняем поля:

letsencrypt:Tenant
letsencrypt:SubscriptionId
letsencrypt:ClientId
letsencrypt:ClientSecret
letsencrypt:ResourceGroupName

Следующим образом:

image

letsencrypt:Tenant с метки #1.
letsencrypt:SubscriptionId из метки #2
letsencrypt:ResourceGroupName из метки #3
letsencrypt:ClientId = наш ClientID, который мы помним
letsencrypt:ClientSecret = наш ClientSecret, который мы помним и никому не говорим

Теперь, в настройках приложения на портале Azure должны быть видны настройки нашего расширения:

image

Довольные собой, в SCM консоли смело жмякаем «Next» и идём выпускать сертификат.
Тут все просто — из выпадающего меню выбираем домен, для которого выпускаем сертификат, и указываем почту, какую хотим.

image

Заканчиваем настройку, на всякий случай перезапускаем сайт (это же Microsoft! Переустановка часто помогает от зависаний, багов, гайморита и простого чиха).

Если все прошло хорошо — поздравляем, теперь у вас есть бесплатный SSL сертификат, котируемый почти всеми браузерами.

image

И это еще не все!

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

image

P.S. Знающих людей прошу поделиться недостающей информацией, чтобы статья была более полной.
Поделиться с друзьями
-->

Комментарии (2)


  1. navion
    01.02.2017 14:10

    Пункт про обновление сертификата с дополнинением тоже стоило перевести.


  1. Liudar
    01.02.2017 18:33

    да, но т.к. автор статьи удалил свой домен, и модуль letsencrypta у него не отработал, а сам я не дождался перевыпуска сертификата (время еще не пришло) — не хотелось писать о том, что вообще неизвестно.

    А что можете про это рассказать? Есть опыт? Действительно автоматически перевыпускается без проблем?