Настройка Let’s Encrypt в Microsoft Azure

К сожалению, в Chrome 57 сертификаты, выданные STARTSSL, перестали быть валидными. Таким образом, пришло время переходить на Let’s Encrypt , как единственный источник бесплатных сертификатов.

Что необходимо для этого?

  1. Сервисный план обслуживания нашего веб-приложения в Azure должен быть не ниже «Стандартного»
  2. URL-адрес приложения должен содержать ваш домен, а не технический домен Azure .azurewebsites.net
  3. В Powershell на Windows 10 выполняем команду Install-Module AzureRM. Для остальных компьютеров используем инструкции на https://www.powershellgallery.com/ , скачивая последнюю версию Windows Management Framework и модуль для включения функции PackageManagement в PowerShell.
  4. Скачиваем и запускаем скрипт, доступный по адресу https://github.com/Microsoft/vsts-rm-documentation/blob/master/Azure/SPNCreation.ps1 После запуска скрипт спрашивает имя подписки (subscription name)— вводим то, которое у вас используется для публикации сайта. В моем случае это: 
  5. После требуется ввести пароль. Создаем новый, который будет использоваться для будущего приложения. Далее запросится учетная запись и пароль для доступа в Microsoft Azure .
  6. Если всё ввели правильно на предыдущем шаге, то создастся новое веб-приложение и после строк «SPN role assignment completed successfully» будут данные для подключения к этому приложению. Скопируем их куда-нибудь себе. 

  7. Устанавливаем приложение Let’s Encrypt , для этого зайдя в консоль SCM по адресу https://{your site name}.scm.azurewebsites.net/SiteExtensions/#gallery и устанавливаем там приложение «Azure Let’s Encrypt» 32-ух битной разрядности и после этого нажимаем «Restart Site«.
    Название сайта можно увидеть в консоли Azure.

    Поэтому у меня ссылка на консоль SCM выглядит как https://www-onix-me.scm.azurewebsites.net/SiteExtensions/#gallery
  8. Запускаем  «Azure Let’s Encrypt»: далее нам потребуется заполнить несколько полей:
    Tenant — это Tenant ID из 6 шага.
    SubscriptionId — это Subscription Id из 6 шага
    ClientId — это Service Principal Id из 6 шага
    ClientSecret — это тот пароль, который спрашивается в самом начале запуска скрипта из 5 шага.
    ResourceGroupName и ServicePlanResourceGroupName — это Default-Web-NorthEurope , то есть там, где расположены мои ресурсы в Azure, у вас может быть другое наименование. Нажимаем галочку «Update Application Settings» и нажимаем «Next».
  9. Если всё было сделано правильно, то на следующем шаге появится возможность выбрать название хоста и прописать почтовый адрес администратора. Ставим галочку «Use Staging«, чтобы была возможность еще раз запросить сертификат, в случае, если мы с первого раза не справимся. 
  10. Спустя несколько мгновений сертификат будет установлен на хостинге. Остается в админке Azure привязать его к сайту.
  11. Если требуется доступ к сайту только по безопасному протоколу, то не забываем включить «HTTPS Only» в Azure
  12. Остается только в WordPress включить доступ только по HTTPS, для этого заходим по FTP на сайт и меняем файл wp-config.php в корне сайта: вместе «http» прописываем «https»