Використовуємо безкоштовні SSL сертифікати для захисту Azure веб сайтів

Ось вже майже 3 роки існує центр сертифікації let’s Encrypt, що дозволяє безоплатно (тобто задарма) отримати сертифікат X. 509. З березня цього року підтримуються навіть wildcard сертифікати, що дозволяють захищати всі піддомени відразу, а не вказуючи конкретну назву для кожного.

Сертифікат типу DV (Domain Validation) видається строком на 90 днів. Є можливість оновлювати сертифікат (знову ж безкоштовно – без всяких заманух). Сертифікати більш високого рівня (Organization Validation або Extended Validation) сервісом не видаються.
Let’s Encrypt використовує протокол під назвою ACME (Automated Certificate Management Environment). Подякувати за можливість отримання безкоштовного сертифікат можна основних спонсорів в особі Electronic Frontier Foundation (EFF), Mozilla Foundation, Akamai, Cisco Systems.

Під катом ви можете прочитати про те, як безкоштовно додати сертифікат SSL вашому Azure вебсайту.

Сертифікат видається на 3 місяці і було б добре, якби він якось автоматично оновлювався. Azure розширення, яке я вам пропоную використовувати, містить у собі вбудовану фічу, яка з допомогою WebJob буде оновлювати сертифікат, але для її функціонування необхідно створити Blob storage. Є варіант розширення без автоматичного оновлення сертифікату. Воно набагато простіше в налаштуванні. Але я хочу розібрати більш складний варіант. Розібравшись з ним, ви зможете розібратися і з простим варіантом не оновлюючим сертифікат автоматично.

Самий недорогий варіант реплікації це LRS (тут нам якась наворочена реплікація не потрібна). Модель доступу cool так як доступ до даних буде відбуватися рідко — лише раз на 3 місяці.

Нам необхідна рядок підключення до blob storage, яку можна знайти тут:

Значення цього рядка підключення необхідно зберегти у Application Settings нашого App Service з типом Custom і наступними іменами:

Тепер, коли ми створили blob, можна додати в App Service розширення.

Читайте також  Угорський алгоритм, або про те, як математика допомагає у розподілі призначень

Зайшовши в розділ Extensions вашого App Service і якшо Add+ ви знайдете 2 варіанти. Один з WebJobs оновлює сертифікат автоматично, другий немає. Раз ми створили blob то можемо вибрати варіант з WebJobs.

Тепер можна зайти в розширення і клікнути на Browse для того, щоб відкрити розширення

Або варіант не для ледачих — ввести в браузерну рядок адресу https://имявашегосайта.scm.azurewebsites.net/letsencrypt/

Вам відкриється вікно з наступними налаштуваннями:

Тепер давайте розберемося з тим, які значення звідки брати. Вгорі форми є опис англійською, але я постараюся пояснити скрінами і невеликими коментарями.

Значення Tenant і SubscriptionId можна отримати, зайшовши в розділ білінгу

Клікнути на підписку

Тут ви можете побачити як Subscription ID, так і найменування каталогу за замовчуванням трохи нижче. Каталог за замовчуванням це і є шуканий Tenant.

З ClientID і ClientSecret трохи складніше. Нам потрібно створити своєрідний аккаунт, під яким можуть виконувати якісь завдання — service principal. Увійти в Azure з цим акаунтом можна. Він призначений тільки для виконання якихось внутрішніх завдань.

Створюємо його через Microsoft Active Directory – App Registrations

Клікаємо + New application registration

З даних створеного програми вже можна взяти Application ID – це шуканий ClientID. Заходимо в Settings і Keys

Вводимо DESCRIPTION створюваного ключ і натискаємо Save.

Копіюємо значення VALUE – це ClientSecret.

Service principal створений, але йому необхідно додати права. Для цього необхідно зайти в групу ресурсів у якій знаходиться App Service. Далі зайти в IAM

І додати новий дозвіл для створеного service principal з роллю Contributor

Тепер у нас є права і всі дані, необхідні для заповнення форми. ResourceGroupName – це ім’я групи у якій знаходиться вам App Service. ServicePlanResourceGroupName – це ім’я групи якій знаходиться service plan вашого App Service. Значення SiteSlotName можна не вказувати якщо ви не використовуєте Development Slots в App Service. А ось поставити прапорець навпроти Update Application Settings потрібно.

Читайте також  Легко додавати нові фічі в старий фреймворк? Муки вибору на прикладі розвитку SObjectizer-а

Ввівши все що потрібно натискаємо Next і на наступній сторінці нам показується якась інформація про існуючі сертифікати (якщо ми раптом повторюємо процес, то в списку щось буде).

Мотаємо далі на Next і отримуємо можливість вибрати імена хостів:

Завершивши запит на новий сертифікат можна переконатися в його працездатності зайшовши на вебсайт і клікнувши на замок поряд із сертифікатом

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *