Безкоштовні сертифікати SSL від Let's Encrypt. Допомога Установка ssl let s encrypt

У статті розглянемо плюси та мінуси безкоштовного Let's Encrypt, для кого підійде, як отримати та встановити його на сайт із панеллю Plesk 12.5

Let"s Encrypt- Безкоштовний, автоматизований проект, з відкритим CA (certificate authority – центр сертифікації).

ОСНОВНІ ПЕРЕВАГИ

безкоштовно:будь-який власник сайту (зокрема, доменного імені) може отримати та встановити довірений TLS-сертифікат Let's Encrypt (TLS - спадкоємець SSL);
автоматизація:всі функції установки, конфігурації та оновлення проводяться в автоматичному режимі;
безпека:усі методи шифрування Let's Encrypt відповідають поточним стандартам;
прозорість:публічна доступність інформації про випуск та відгук кожного сертифіката для будь-якого бажаючого;
вільно:буде використано принцип open standard для протоколів взаємодії з CA (certificate authority).

ПРОГРАМНА РЕАЛІЗАЦІЯ

Центр Сертифікації видає сертифікати, які генеруються на сервері АСМЕ за протоколом Boulder, написані мовою GO (доступний у вихідниках під ліцензією MPL2).
Цей сервернадає RESTful-протокол, який функціонує через канал із TLS шифруванням.
Клієнтська частина протоколу АСМЕ, тобто. certbot, написаний мовою Python, також відкритий під ліцензією APACHE. Certbot встановлюється на клієнтському сервері, щоб створювати запит сертифіката, перевірити валідність домену і після цього встановлює сертифікат з наступним налаштуванням шифрування HTTPS веб-сервера.
Також у функцію certbot входить оновлення сертифіката після закінчення терміну дії. Установка сертифіката виконується однією командою після того, як приймається ліцензія.
Certbot дозволяє встановлювати сертифікат з додатковими опціями -OCSP stapling та HTTP Strict Transport Security

ВСТАНОВЛЮЄМО SSL СЕРТИФІКАТ LET"S ENCRYPT (ІНСТРУКЦІЯ)

Розглянемо використання сертифіката стосовно серверів, які використовуються на нашому хостингу.
Переважна більшість наших серверів використовують версію Plesk 12.5, де даний модуль вже включений в дистрибутив Plesk 12.5 і установка його проста і зручна. Достатньо зайти в панель плескіт у розділі «Сайти та домени», клікнути на модуль Let"s Encrypt,

Вибрати потрібні опції і після натискання кнопки «Встановити» установка відбудеться менш ніж за хвилину.

Оскільки цей сертифікат розрахований на термін не більше 90 днів, то в панелі плескіт створено відповідне завдання cron у розділі Інструменти та налаштування - Планувальник задач

Слід зазначити, що є деякі обмеження на генерацію сертифіката:

  • дублюючі сертифікати – не більше 5 на тиждень;
  • кількість спроб генерації сертифіката трохи більше 5 разів у годину.

ПРО НЕДОЛІКИ LET"S ENCRYPT

Наприкінці цієї статті хочемо зазначити, що, незважаючи на всі переваги даного типу сертифіката, існують недоліки, які потрібно враховувати при виборі SSL:
  1. Безкоштовний сертифікат Let's Encrypt короткочасний і розрахований на термін не більше 90 днів, на відміну від платного, який можна випустити строком до 3 років. Ви можете, звичайно, перевипускати сертифікат кожні 3 місяці, але обов'язково слідкуйте за термінами. трьома способами: вручну, за рахунок налаштування планувальника задач cron або автоматично.

    Якщо ви вибрали спосіб оновлення вручну, то слідкуйте чітко за термінами і вчасно перевипускайте сертифікат. Інакше ризикуєте отримати наплив незадоволених користувачів сайту та їх подальший відтік.

    Планувальник задач cron- це спосіб налаштування автоматичного оновлення. Спосіб хороший для тих, хто має навички адміністрування Linux і вміє працювати з кронами. Потрібно ще враховувати, що у роботі крона не виключені помилки, які можуть завадити перевипуску сертифіката. Висновок: слідкувати за оновленням все одно доведеться.

    Автоматичне оновлення.Цей спосіб передбачає, що ви приймаєте автоматичні налаштування, передбачені Центром сертифікації. І тут потрібно розуміти, що ви таким чином даєте свою згоду на те, що ЦС може вносити зміни на свій розсуд у ПЗ та налаштування вашого сервера.

  2. Не всі домени можна захистити безкоштовним Let's Encrypt. Цей сертифікат розрахований лише на захист одного домену без перевірки компанії, так звані DV SSL (Domain Validation).

    Так, за допомогою Let's Encrypt не можна створити такі типи сертифікатів:

    - WildCard сертифікатдля захисту піддоменів певного домену;
    - Сертифікати OV SSL (organization validation), Що передбачають перевірку не тільки домену, а й компанії;
    - Сертифікати EV SSL (extended validation). Сертифікат з максимальним ступенем захисту та зеленим адресним рядком браузера;
    - Multi-Domain сертифікаттипу UCC;


  3. Важливий момент - немає жодних фінансових гарантій використання Let"sEncrypt. Якщо раптом відбудеться злом безкоштовного сертифіката, то грошову компенсаціюніхто вам не надасть.

ВИСНОВОК

Підбиваючи підсумки, можна сказати, що Центр Сертифікації Let's Encrypt є досить успішним проектом, популярність якого зростає з кожним роком серед користувачів мережі.

І якщо вам потрібен простий сертифікат для одного домену, ви маєте відповідні навички адміністрування, а також якщо немає необхідності в SSL з перевіркою компанії (OV-organization validation) або наявність зеленого адресного рядка та вказівки назви компанії в сертифікаті, то цей сертифікат можна використовувати.

Тим не менш, ми рекомендуємо великим компаніям, інтернет-магазинам, банкам та іншим e-commerce проектам встановлювати комерційні від відомих Центрів сертифікації, такі як, наприклад, GlobalSign, Comodo.
Так ви заручитеся довірою користувачів та покажете, що ви серйозна компанія, яка дбає про безпеку даних клієнтів.

  • Поділитися:

Останнім часом турбота про безпеку та приватність користувачів набирає обертів. Коли проектувався інтернет та протокол HTTP, про такі поняття не думали. Тому весь трафік, що передається між веб-сервером і користувачем за протоколом HTTP, може бути переглянутий будь-ким, хто знаходиться на шляху цього трафіку, наприклад провайдером або хакерами.

Тому був придуманий протокол HTTPS, який дозволяє шифрувати трафік і таким чином убезпечити його від перехоплення. Для шифрування використовують SSL-сертифікати. Раніше ці сертифікати стояли грошей, але завдяки компанії Let's Encrypt тепер будь-який веб-сайт може встановити SSL-сертифікат та налаштувати шифрування абсолютно безкоштовно. У цій статті ми розглянемо, як отримати сертифікат Let's Encrypt за допомогою офіційного клієнта Certbot.

Отримання сертифіката Let's Encrypt

Взагалі, нам не обов'язково використовувати саме Certbot, ми могли б створити сертифікат в OpenSSL, а потім просто підписати його за допомогою ACME API від Let's Encrypt. Але до цього API треба виконувати запити у форматі JSON, що дуже незручно робити з командного рядка , тому краще використовувати один з клієнтів, наприклад Certbot До того ж більшість клієнтів ACME вже включають автоматичну генерацію сертифіката в OpenSSL.

1. Синтаксис та команди Certbot

Перш ніж перейти до роботи, розглянемо синтаксис утиліти Certbot та її команди. Вони виглядають досить просто:

certbot команда опції -d домен

Команди використовуються для того, щоб повідомити утиліту, що саме треба зробити. Ось основні з них:

  • run- використовується за замовчуванням, якщо жодна команда не вказана, отримує та встановлює сертифікат;
  • certonly- тільки отримує чи оновлює сертифікат, але не встановлює його;
  • renew- оновлює сертифікат;
  • enhance- додає параметри безпеки для існуючих сертифікатів;
  • certificates- відображає встановлені сертифікати;
  • revoke- відкликає сертифікат;
  • delete- Видаляє сертифікат;
  • register- створює ACME-аккаунт;

Як бачите, команд не так багато, і тепер ви в них не заплутаєтеся, а тепер розберемо основні опції:

  • -d- вказує домен або список доменів, розділених комами, для яких треба отримати сертифікати;
  • --apache- використовувати плагін apache для встановлення сертифікату;
  • --nginx- Використовувати плагін nginx;
  • --standalone- запускати власний веб-сервер для аутентифікації під час отримання сертифіката;
  • --preferred-challenges- дозволяє вибрати спосіб аутентифікації за промовчанням http, але можна вибрати dns;
  • --server- дозволяє вказати адресу ACME-сервера, потрібно для WildCard-сертифікатів, оскільки вони підтримуються лише другою версією ACME;
  • --webroot- помістити файли автентифікації до папки веб-сервера;
  • -w- Вказує папку веб-сервера, куди треба помістити файли аутентифікації;
  • --manual- Створення сертифіката в ручному режимі;
  • -n- запустити утиліту в не інтерактивному режимі;
  • --dry-run- Тестовий запуск без збереження змін на диск.

Тепер ми готові перейти до роботи з утилітою. Спочатку встановимо її.

2. Установка Certbot

Спочатку необхідно встановити утиліту Certbot. Це офіційний клієнт, і він є у репозиторіях більшості дистрибутивів. Установка Certbot в Ubuntu виконується з PPA:

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot

Якщо ви знаєте, для якої платформи будуть генеруватися сертифікати, можна встановити окремі розширення для них, вони дозволяють автоматично редагувати конфігурацію. Наприклад, ви можете встановити модуль для apache або nginx:

sudo apt install python-certbot-apache
sudo apt install python-certbot-nginx

Ці плагіни потрібні, якщо ви збираєтеся використати відповідні опції для автоматичного встановлення.

3. Створення сертифіката без встановлення

Якщо вам потрібний сертифікат для веб-сервера, який не підтримується програмою, вам доведеться встановлювати його вручну. Отримати такий сертифікат можна за допомогою команди certonly:

sudo certbot certonly --webroot -w /var/www/test...test.сайт

Ця команда отримує сертифікат для доменів test.сайт та www.test.сайт. Файли для підтвердження автентифікації будуть розміщені у каталозі /var/www/example/. Також ви можете використовувати вбудований веб-сервер для аутентифікації:

sudo certbot certonly --standalone -d test..test.сайт

Під час генерації сертифіката утиліта запитає вашу Email-адресу для облікового запису ACME, на яку будуть надходити повідомлення про необхідність продовження та інша інформація:

Потім вам запропонують підтвердити, що ви прочитали правила використання сервісу, дайте відповідь А:

Тільки після цього розпочнеться отримання сертифікату. Якщо все пройшло успішно, то ваш сертифікат буде збережено в /etc/letsencrypt/live/ім'я_домену/,звідти ви можете використовувати їх у своїх додатках. Якщо виникли помилки, то утиліта повідомить про це.

4. Створення сертифіката для Nginx

Вам не обов'язково вручну встановлювати сертифікати, ви можете використовувати один із доступних плагінів для автоматичного оновлення конфігурації. Наприклад, розглянемо використання плагіна для Nginx:

sudo certbot run --nginx

Додаткові параметри задавати не треба, тому що утиліта сама прочитає конфігурацію та виведе список доступних доменів:

Введіть цифру потрібного домену або кілька цифр, розділених комою. Утиліта сама встановить все, що потрібно, а потім запитає вас, чи потрібно перенаправляти http-трафік на https:

Потім утиліта видасть ту саму інформацію, що й у попередньому варіанті:

5. Оновлення сертифіката Let's Encrypt

Щоб виконати оновлення сертифіката Let's Encrypt, достатньо запустити команду certbotз опцією certonly. Враховуючи, що сертифікат знаходиться в папці certbot, а конфігурація веб-сервера налаштована саме на цю папку, цієї операції достатньо. Якщо ж сертифікати копіюються в іншу папку, вам знадобиться скрипт для їх автоматичного копіювання після оновлення.

sudo certbot certonly -d test..test.сайт

Якщо термін служби сертифіката ще не вийшов і оновлення не потрібне, утиліта запитає вас, чи це дійсно потрібно зробити.

Якщо ви хочете оновлювати сертифікат у не інтерактивному режимі, наприклад, за допомогою скрипта, то потрібно використовувати опцію -n, також при використанні цієї опції треба передати плагін, який використовуватиметься для аутентифікації:

sudo certbot certonly --nginx -n -d test..test.сайт

Тепер можна додати цю команду до планувальника cron, наприклад раз на тиждень:

0 0 * * 0 /usr/bin/certbot certonly --nginx -n -d test..test.сайт

Якщо ви хочете оновити сертифікати для всіх доменів однієї командної в не інтерактивному режимі, достатньо виконати команду:

sudo certbot renew

6. Отримання Wildcard сертифіката Let's Encrypt

Let's Encrypt Wildcard-сертифікати з'явилися відносно недавно. Вони дозволяють використовувати один сертифікат для всіх піддоменів певного домену, наприклад *.test.сайт. Але і працює це все складніше - вам треба буде підтвердити, що цей домен належить саме вам. треба додати TXT-запис до зони домену.

Ви можете зробити це вручну або використовувати dns-плагін для Certbot, щоб додати її автоматично. Правда, плагін підтримується тільки для популярних сервісів, таких як DigitalOcean, Linode, Cloudflare і так далі. У статті розглянемо ручний варіант. Команда для генерації сертифікату буде виглядати так:

sudo certbot certonly --agree-tos -d test..test..api.letsencrypt.org/directory

Вам потрібно буде дозволити публікацію вашої IP-адреси, а потім додати TXT-запис з потрібним ім'ям та значенням до вашої доменної зони. У моєму випадку це _acme-challenge.test.сайтзі спеціальним хешем:

Ілля

Дмитре, добрий вечір! Підкажіть будь ласка. Якраз кілька днів намагаюся вирішити питання із Lets encrypt сертифікатом. На хостингу hosting.energy під час створення сайту dommeb.com.ua підключив безкоштовний Lets encrypt з Isp панелі. Все було добре кілька днів, проходив тести SSL ssllabs.com/ssltest/analyze.html на А+. Пробував завантажити з мобільного на Android 2.3.6 зі стандартного браузера та Maxton - з'являлося лише попередження про ненадійність сертифікату, а далі можна натиснути Продовжити та сайт був доступний.

Тиждень тому зауважив, що при завантаженні з мобільного та тестів на редиректи (поставив у налаштуваннях домену на хостингу редиректи з http-https) відбувається додавання до url:443 (назва SSL порту). І сайт недоступний під час завантаження (напис помилки).

Написав у хостинг, вирішили протягом кількох днів питання. Написали «Виправили конфігурації Nginx щодо редиректів, у конфігі закралася помилка (ймовірно, через панель управління) і було 2 редиректи.»

:443 вже не дописувався з мобільного та при тесті на редиректи.
Але сайт, як і раніше, не завантажувався, як з появою цих подвійних редиректів:443 (помилка на Android 2.3.6 сайт не доступний при завантаженні).

Перевірив ssl тест, теж А+ результат, але з'явилася помилка в підпункті Handshake Simulation

Погуглил з цієї помилки:
Тут про цю помилку і рішення пишуть talk.plesk.com/threads/https-websites-not-loading-in-ie.338346/ Передав всю інформацію на підтримку хостингу.

Декілька днів листувався з хостингом, кажуть нічого в конфігурації налаштувань хостингу не змінювали, використовують стандартний плагін Lets Encrypt сертифіката. І вони не гарантують роботу SSL від LetsEncryt на застарілих платформах. Запропонували виділений IP за 1.5 $ на місяць.
Хоча кілька днів тому все працювало і правок не було на обох сайтах (всі дані у браузерах очищав). А сам сайт хостингу (теж на цьому сертифікаті, нормально і зараз вантажиться з мобільного і навіть без попередження)

Сайти на віртуальному хостингу без виділеного IP. Один сайт зробив на Opencart з Lets encrypt сертифікатом, все було гаразд. Другий тестовий WordPress - все було теж добре з android 2.3.6. Збирався переходити на третьому сайті (WordPress) з http на https, і вже перші два нормально не вантажаться на Android 2.3.6.
Хотілося б, щоб усі користувачі могли нормально заходити на сайт (у крайньому випадкуна старих платформах як Android 2.3.6, щоб було тільки попередження, яке можна пропустити)
Підкажіть, будь ласка, може ви знаєте, в чому може бути причина?

Вирішив подивитися платні сертифікати, як хороший цей від Comodo namecheap.com/security/ssl-certificates/comodo/positivessl.aspx ,
але у вас у статті прочитав, що на платформі Android сертифікат Comodo був недостовірним. Трохи заплутався із цим

Наявність SSL - більше не забаганка великих компаній, а обов'язкова вимогадля всіх. Без SSL сайти втрачають позиції в пошуковій видачі, відвідувачів та гроші. Let's Encrypt в панелі ISPmanager дозволяє випускати безкоштовні SSL – як звичайні, так і Wildcard. Запит та встановлення відбуваються автоматично та не потребують технічних навичок.

Навіщо потрібний SSL-сертифікат

Коли ви заходите на сайт, підключаєтеся до сервера, на якому він розташований. Якщо підключення не захищене, хакери можуть вкрасти логіни, паролі та номери банківських карток. Сертифікат SSL потрібний, щоб зробити підключення захищеним. З ним дані, що ви вводите, шифруються. Навіть якщо хакери перехоплять їх, вони не зможуть їх розшифрувати.

З 2017 року пошукові роботи Google відзначають сайти без SSL як небезпечні та знижують їх позиції у пошуковій видачі. Google Chromeта Mozilla Firefox маркують HTTP сайти як ненадійні. Так браузери попереджають користувачів, що шахраї можуть вкрасти особисті дані та гроші.

Переведіть сайт на HTTPS, щоб посилити позиції в пошукових системахта викликати довіру відвідувачів. Із модулем Let's Encrypt для цього не потрібні ні гроші, ні технічні навички.

Кому підійде Let's Encrypt

Let's Encrypt випускає SSL сертифікати початкового рівня з перевіркою домену (DV). Тому Let's Encrypt чудово підходить для невеликих онлайн-проектів, де не потрібна сувора гарантія безпеки: блогів, хобі-сайтів, сайтів-візиток. Зеленого замочка в рядку браузера достатньо, якщо відвідувачі не вводять логіни та паролі і не купують.

DV сертифікат тільки підтверджує, що домен дійсно належить вам. Відвідувачі сайту не зіштовхнуться із попередженнями браузера про відвідування неперевіреного сайту. Шахраї не перехоплять інформацію користувачів, оскільки сертифікат забезпечує безпечне з'єднання HTTPS.

Важливо! Ми не рекомендуємо використовувати DV-сертифікат на сайтах інтернет-магазинів та корпоративних порталів, де потрібно більше високий рівеньдовіри користувачів. Під час випуску SSL із перевіркою домену центр сертифікації не перевіряє законність бізнесу. Тому такий сертифікат не гарантує відвідувачам, що власнику домену можна довіряти логіни, паролі та номери банківських карток.

Як встановити Let's Encrypt

Крок 1.

Щоб встановити Let's Encrypt, ISPmanager має бути не нижче версії 5.65.

  • Відкрийте ISPmanager,
  • З-під облікового запису root перейдіть до розділу Інтеграція → Модулі;
  • Встановіть модуль Let's Encrypt.

Тепер ви можете отримати діючий SSL-сертифікат для свого домену. Для цього знадобиться користувач з правом користуватися SSL та діюче доменне ім'я.

Крок 2

Після встановлення у розділі Налаштування web-сервера → SSL-сертифікатиНатисніть на кнопку Let"s Encrypt, щоб отримати сертифікат. Докладніше про створення сертифіката в .

Сертифікат генерується успішно, якщо всі зазначені домени і псевдоніми (аліаси) відкриваються з сервера. Якщо навіть один із них не відкриється, не вдасться випустити сертифікат.

Про проект Let’s Encrypt

Let's Encrypt – некомерційний довірений центр сертифікації. Він відрізняється від інших тим, що видає SSL сертифікати безкоштовно. У цьому процес випуску повністю автоматизований.

Проект створений у 2014 році, щоб більшість інтернет-сайтів змогла перейти до безпечного з'єднання по HTTPS. Серед основних спонсорів провідні технологічні компанії світу: Mozilla, Google Chrome, Cisco, Facebook. Партнерами Let's Encrypt є центр сертифікації IdenTrust, University of Michigan, Stanford Law School, Linux Foundation.

Основні принципи Let's Encrypt:

  • Безоплатність.Власник будь-якого домену може отримати довірений SSL безкоштовно;
  • Автоматизація. Let's Encrypt автоматично запитує, конфігурує та оновлює сертифікати;
  • Безпека. Let's Encrypt просуває найкращі практики безпеки як на стороні центру сертифікації, так і на веб-сайтах.

Звертаємо вашу увагу, що Let's Encrypt має такі обмеження:

  1. Можна замовити лише 5 сертифікатів на тиждень на домен першого рівня та його піддомени.
  2. Термін дії Let's Encrypt сертифіката – 3 місяці. Кожні три місяці ISPmanager автоматично перевипускає сертифікати.
  3. Let's Encrypt не надає гарантій та не виплачує компенсацію у разі витоку даних, оскільки є некомерційною організацією.

Повний список обмежень

У цьому огляді ми розповімо про особливості встановлення та прив'язки безкоштовного TLS/SSL сертифіката від Let's Encrypt для сайту на веб-сервері IIS, запущеного на Windows Server 2019/2016/2012 R2.

Let's Encrypt та ACME клієнти для Windows

Наявність TLS/SSL сертифікату у сайту дозволяє захистити дані користувачів, що передаються по мережі від атак людина-посередині (man-in-the-middle) та гарантувати цілісність переданих даних. Некомерційний центрсертифікації Let'sEncryptдозволяє в автоматичному режимі через API випускати безкоштовні криптографічні TLS сертифікати X.509 для шифрування (HTTPS). Видаються лише сертифікати для валідації доменів (domain validation) з терміном дії 90 днів (є обмеження – 50 сертифікатів для одного домену на тиждень). Але ви можете автоматично перевипускати сертифікат SSL для свого сайту за розкладом.

API інтерфейс, що дозволяє автоматично випускати сертифікати називається AutomatedCertificateManagementEnvironment (ACME) API. Для Windows системна даний момент є 3 найпопулярніші продажі клієнта ACME API:

  • Утиліта WindowsACMESimple(WACS) – утиліта командного рядка для інтерактивного випуску сертифіката та прив'язки його до певного сайту на вашому веб-сервері IIS;
  • Модуль PowershellACMESharp– бібліотека Powershell з безліччю команд для взаємодії через ACME API із серверами Let's Encrypt;
  • Certify– графічний менеджер SSL сертифікатів для Windows, дозволяє інтерактивно керувати сертифікатами через ACME API.

Клієнт WACS для установки TLS сертифіката Let's Encrypt у IIS на Windows Server

Найпростіший спосіб отримати SSL сертифікат від Let's Encrypt - скористатися консольною утилітою Windows ACME Simple (WACS) (раніше проект називався LetsEncrypt-Win-Simple) . Вона є простим майстром, який дозволяє вибрати один із сайтів, запущених на IIS, і автоматично випустити і прив'язати до нього SSL сертифікат.

Отже, припустимо у нас є веб-сайт на IIS, розгорнутий під керуванням Windows Server 2016. Наше завдання, переключити його в HTTPS режим, встановивши SSL сертифікат від Let's Encrypt.

Завантажте останній реліз клієнта WACS зі сторінки проекту на GitHub https://github.com/PKISharp/win-acme/releases (у моєму випадку це версія v2.0.10 – файл win-acme.v2.0.10.444.zip).

Розпакуйте архів у каталог на сервері з IIS: c:\inetpub\letsencrypt

Відкрийте командний рядок з правами адміністратора, перейдіть до каталогу c:\inetpub\ letsencrypt та запустіть wacs.exe.

Запуститься інтерактивний майстер генерації сертифікату Let's Encrypt та прив'язки його до сайту IIS. Щоб швидко створити новий сертифікатВиберіть N: — Створити нові certificates (simple for IIS).

Потім потрібно вибрати тип сертифіката. У нашому прикладі немає необхідності використовувати сертифікат із псевдонімами (декількома SAN — Subject Alternative Name), тому достатньо вибрати пункт 1. Single binding of an IIS site. Якщо вам потрібний сертифікат Wildcard, виберіть опцію 3.

Вкажіть ваш email, на який надсилатимуться повідомлення про проблеми з оновленням сертифіката сайту та інші про повішення (можна вказати кілька email через кому). Залишиться погодиться з умовами використання та Windows ACME Simple підключиться до серверів Let's Encrypt та спробує автоматично згенерувати новий SSL сертифікат для вашого сайту.

Процес генерації та встановлення SSL сертифіката Let's Encrypt для IIS повністю автоматизовано.

За промовчанням виконується валідація домену в режимі http-01 validation (SelfHosting). Для цього потрібно, щоб у DNS домену був запис, що вказує на ваш веб-сервер. При запуску WACS у ручному режимі можна вибрати валідацію типу 4 [ http-01] CreatetemporaryapplicationinIIS(recommended). У цьому випадку на веб-сервері IIS буде створено невелику програму, через яку сервери Let's Encrypt зможуть провести валідацію.

Примітка. При виконанні TLS/HTTP перевірки ваш сайт повинен бути доступний зовні за повним DNS імені за протоколами HTTP (80/TCP) та HTTPS (443/TCP).

Утиліта WACS зберігає закритий ключсертифіката (*.pem), сам сертфікат та ряд інших файлів у каталог C:\Users\%username%\AppData\Roaming\letsencrypt-win-simple. Потім вона у фоновому режимі встановить згенерований сертифікат SSL Let's Encrypt і прив'яже його до вашого сайту IIS. Якщо на сайті вже встановлено сертифікат SSL (наприклад, ), він буде замінений новим.

У IIS Manager відкрийте меню Site Bindingдля вашого сайту та переконайтеся, що для нього використовується сертифікат, виданий Let's Encrypt Authority X3.

У сховищі сертифікатів комп'ютера сертифікат Let's Encrypt для IIS можна знайти в розділі Web Hosting -> Certificates.

Windows ACME Simple створює нове правило у планувальнику завдань Windows ( win-acme-renew (acme-v02.api.letsencrypt.org)) для автоматичного продовження сертифікату. Завдання запускається щодня, продовження сертифіката виконується через 60 днів. Планувальник запускає команду:

C:\inetpub\letsencrypt\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org"

Цю команду можна використовувати для ручного оновлення сертфікату.

Перенаправлення трафіку IIS сайту з HTTP на HTTPS адресу

Щоб перенаправити весь вхідний HTTP трафік на сайт HTTPS, потрібно встановити модуль MicrosoftURLRewriteModule(https://www.iis.net/downloads/microsoft/url-rewrite), та переконатися, що в налаштуваннях сайту не включена опція обов'язкового використання SSL (Require SSL). Залишилося налаштувати редирект у файлі web.config:













Також можна настроїти перенаправлення трафіку через URL Rewrite через графічний інтерфейс IIS Manager. Виберіть Sites -> yoursitename -> URL Rewrite.

Створіть нове правило Add Rule -> Blank rule.

Вкажіть ім'я правила та змініть параметри:

  • Requested URL -> Matches the Pattern
  • Using -> Regular Expressions
  • Pattern -> (.*)

У блоці Conditions змініть Logical Grouping -> Match All та натисніть Add. Вкажіть

  • Condition input -> (HTTPS)
  • Check if input string -> Matches the Pattern
  • Pattern -> ^OFF$

Тепер у блоці Action оберіть:

  • Action Type -> Redirect
  • Redirect URL -> https://(HTTP_HOST)/(R:1)
  • Redirect type -> Permanent (301)

Відкрийте браузер і спробуйте відкрити ваш сайт за адресою HTTP, вас має автоматично перенаправити на HTTPS URL.

Використання сертифіката Let's Encrypt для Remote Desktop Services

Якщо ви використовуєте для підключення зовнішніх користувачів до корпоративної мережі шлюз Remote Desktop Gateway/RD Web Access, ви можете використовувати нормальний SSL сертифікат Let's Encrypt замість звичайного сертифіката. Розглянемо, як коректно встановити сертифікат Let's Encrypt для зайняти служб Remote Desktop Services у Windows Server.

Якщо на Remote Desktop Gateway сервері також піднята роль RDSH, потрібно заборонити користувачам Read доступ до каталогу, в якому у вас зберігається WACS (у моєму прикладі це c:\inetpub\letsencrypt) і до каталогу з сертифікатами сертифікат Let's Encrypt (C:\ProgramData \win-acme).

Потім на сервері RDP GW, запускаєте wacs.exe, як описано вище, і ви вибираєте потрібний сайт IIS (зазвичай, Default Web Site). Let's Encrypt видає вам новий сертифікат, який встановлюється для веб-сайту, і в планувальнику з'являється завдання на автоматичне оновлення сертифіката.

Ви можете вручну експортувати цей сертифікат і прив'язати його до потрібним службам RDS через SSL binding. Але вам доведеться виконувати ці дії вручну кожні 60 днів під час перевипуску сертифіката Let's Encrypt.

Нам потрібен скрипт, який відразу після отримання (продовження) сертифіката Let's Encrypt застосовував би його для RD Gateway.

У проекті win-acme є готовий скрипт PowerShell ImportRDGateway.ps1 ( https://github.com/PKISharp/win-acme/tree/master/dist/Scripts) , який дозволяє встановити вибраний сертифікат SSL для служб Remote Desktop. Головний недолік скрипту – доводиться вручну вказувати відбиток нового сертифіката:
ImportRDGateway.ps1

Для автоматичного отримання відбитка сертифіката із зазначеного сайту IIS використовуйте допрацьований скрипт (заснований на стандартному ImportRDGateway.ps1).

Інструкція та модифікований PowerShell скрипт надіслані нашим читачем Антоном, за що надсилаємо йому промені подяки!

Ви можете запустити цей скрипт вручну:

powershell -File ImportRDGateway_Cert_From_IIS.ps1

Якщо у вас RDS Gateway живе на стандартному IIS сайті "Default Web Site" з індексом 0, можете використовувати скрипт без змін.

Щоб отримати ID сайту в IIS, відкрийте консоль PowerShell та виконайте:

Import-Module WebAdministration
Get-ChildItem IIS:Sites

Отримайте перелік видів:

У колонці ID вказаний індекс вашого сайту, відніміть від нього одиницю. Отриманий індекс вашого сайту потрібно вказати замість 0 у 27 рядку скрипта PowerShell:

$NewCertThumbprint = (Get-ChildItem IIS:SSLBindings).Thumbprint

Відкрийте завдання планувальника win-acme-renew (acme-v02.api.letsencrypt.org) і на вкладці Action додайте нове завдання, яке запускає скрипт ImportRDGateway_Cert_From_IIS.ps1 після оновлення сертифіката.

Щоб не змінювати дозволи на виконання скриптів PowerShell, можна викликати скрипт командою:

PowerShell.exe -ExecutionPolicy Bypass -File c:\inetpub\letsencrypt\ImportRDGateway_Cert_From_IIS.ps1

Тепер скрипт прив'язки сертифіката SSL до служб RDS буде виконуватися відразу після продовження сертифіката Let's Encrypt. При цьому автоматично перезапускається служба RD Gateway командою:

При перезапуску служби TSGateway усі поточні сесії користувачів розриваються, тому бажано змінити періодичність запуску завдання оновлення сертфікату на 1 раз на 60 днів.

Зазначимо, що сертифікати Let's Encrypt теперішній моментшироко використовуються на сайтах багатьох великих компаній і їм довіряють усі браузери. Сподіваюся, що доля безкоштовного центру сертифікації Let's Encrypt не спіткає доля WoSign та StartCom.