3.2.6 Випуск і підключення сертифіката Let's Encrypt

Сертификаты Lets Encrypt

Хостинг TheHost офіційно підтримує сертифікати Let’s Encrypt. Сертифікати Let’s Encrypt є безкоштовними, але при цьому функціонально порівнянні з класичними комерційними сертифікатами від центрів сертифікації Sectigo/Comodo, RapidSSL, Thawte, GeoTrust та інших. Сертифікати Let’s Encrypt мають наступні особливості:

  • Сертифікати цього типу є сертифікатами з перевіркою домену, тому для їх видачі обов’язково, щоб доменне ім’я, для якого формується сертифікат, було активним і посилалися на основний A-запис на сервері, на якому формується сертифікат. Для незареєстрованого, неактивного або спрямованого на інший сервер доменного імені видача сертифіката Let’s Encrypt не є можливою.
  • Термін дії SSL Let’s Encrypt: 90 днів з моменту видачі.
  • Продовжити сертифікат Let’s Encrypt можливо лише після 2-х місяців з моменту видачі.
  • Для продовження сертифікатів Let’s Encrypt необхідно видавати новий сертифікат в панелі керування хостингом..
  • На нашому хостингу існує можливість включити функцію автоматичного продовження для сертифікатів Let’s Encrypt.

Покрокова інструкція по випуску і підключенню SSL Let’s Encrypt

Зверніть увагу: дії, описані в цій інструкції, необхідно виконувати в панелі управління Вашого хостингу. У особистому кабінеті подібний функціонал відсутній. Детальніше про те, що таке панель управління хостингом і як отримати доступ до неї, Ви можете дізнатися за посиланням.

Загалом, для видачі сертифіката Let’s Encrypt достатньо зайти в панель управління хостингом і виконати кілька простих дій:

Инструкция по установке сертификатов Lets Encrypt

Далі необхідно встановити сертифікат для потрібного Вам сайту. Для цього в розділі World Wide Web -> WWW домени відкриваємо його властивості, увімкнувши та вибравши новий сертифікат:

Настройка WWW домена

Інструкція: установка SSL Let’s Encrypt більш докладно, у поетапному форматі

1. В панелі управління хостингом відкриваємо розділ SSL сертифікати:

Список SSL-сертификатов

2. У верхньому меню натискаємо на кнопку Let’s Encrypt:

Выпуск сертификата Lets Encrypt

3. У відркитому вікні вибираємо сайт, для якого необхідно видати сертифікат Let’s Encrypt:

Выбор сайта для сертификата

4. Для підтвердження операції видачі сертифіката натискаємо Ок:

Подтверждение операции выпуска сертификата

5. Після цього протягом 20-30 секунд у списку SSL-сертифікатів повинен з’явитися новий сертифікат Let’s Encrypt:

Новый сертификат Let's Encrypt

6. Далі необхідно встановити сертифікат для потрібного Вам сайту. Для цього в розділі World Wide Web -> WWW домени відкриваємо його властивості, увімкнувши та вибравши новий сертифікат:

Настройка WWW домена

Готово! Ваш сертифікат випущений і підключений до сайту!

Активація примусового перенаправлення з http на https

Сертифікат встановлено, підключено і активовано. Як примусово перенаправити всіх відвідувачів з http:// на https://?

Існують два варіанти активації такого перенаправлення з боку веб-сервера.

1. Стандартний, можливий для всіх наших серверів хостингу та нових шаблонів ОС з панеллю ISPManager:

Додатково: активація примусового перенаправлення з http:// на https:// в панелі ISPManager.

На всіх shared-хостинг серверах це можна зробити в панелі управління ISP. Для цього в панелі потрібно перейти в розділ WWW домени, виділити потрібний домен та натиснути кнопку Змінити. Далі потрібно в властивостях відзначити прапорцем пункт Тільки SSL.

Как сделать редирект на https

2. Ручний, при використанні віртуальних та виділених серверів зі старими шаблонами ОС (нижче за Ubuntu_18+ispmgr):

Додатково: активація примусового перенаправлення з http:// на https:// за допомогою конфігурації Nginx.

Необхідно в конфігурації Nginx для потрібного WWW-домену додати наступний блок:

/etc/nginx/nginx.conf/
    if ($ssl_protocol = "") {
      rewrite ^ https://$server_name$request_uri? permanent;
    }

Приклад, як це повинно бути у файлі конфігурації /etc/nginx/nginx.conf/:

/etc/nginx/nginx.conf/
  server {
    server_name example.com www.example.com;
    listen 91.234.32.170;
    listen 91.234.32.170:443 ssl;
    disable_symlinks if_not_owner from=$root_path;
    set $root_path /var/www/exampleuser/data/www/example.com;
  if ($ssl_protocol = "") {
    rewrite ^ https://$server_name$request_uri? permanent;
 }
  location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    root $root_path;
    access_log /var/www/nginx-logs/exampleuser isp;
    access_log /var/www/httpd-logs/example.com.access.log ;
    error_page 404 = @fallback;
 }
  location / {
    proxy_pass http://91.234.32.170:81;
    ....

Також зазначене можна зробити на VPS під root в розділі WWW-домени, вибравши потрібний сайт, натиснувши справа вгорі Конфіг, і, у вкладці Nginx додати потрібний код для сайту.

Автоматичне продовження сертифікатів Let’s Encrypt

На нашому хостингу також доступний функціонал автоматичного продовження SSL-сертифікатів Let’s Encrypt.

У розділі SSL certificates в панелі управління хостингом знайдіть сертифікат, який відповідає наступним вимогам:

  • це сертифікат Let’s Encrypt;
  • цей сертифікат активний і підключений до домену.

Після цього виберіть такий сертифікат за допомогою правої кнопки миші та натисніть кнопку Info у верхньому правому куті інтерфейсу панелі. У вікні властивостей сертифіката ви зможете знайти спеціальну опцію Auto Renew:

Автопродление Lets Encrypt

Увімкнувши цю опцію та натиснувши Ok, ви активуєте автоматичне оновлення для цього та майбутніх SSL Let’s Encrypt для конкретного домену.

Додатково: як працює автоматичне оновлення?

Приблизно один раз на годину скрипт перевіряє всі активні сертифікати, позначені цією галкою, і автоматично оновлює ті, з терміном дії яких закінчується раніше, ніж через 30 днів (або вже закінчився).

У разі успішного оновлення, новий сертифікат замінює старий, а старий залишається з тим самим ім’ям і розширенням .previous., тобто .попередній.

Особливості експлуатації та можливі помилки

При формуванні сертифікатів Let’s Encrypt у кореневих папках користувачів автоматично створюються спеціальні каталоги:

  • Каталог lets_encrypt в корені хостинг-акаунта. Службовий каталог розміром приблизно 300 Кб, який забезпечує технічну можливість видавати користувачам сертифікати Let’s Encrypt. Видалення його не рекомендується, але він автоматично відновлюється при повторному видачі або продовженні сертифіката;

  • Каталог .well-known/acme-challenge в корені сайту, для якого був виданий сертифікат Let’s Encrypt. Цей каталог розміром до 10 Кб необхідний для проведення перевірки власності або належності сайту. Ми не рекомендуємо його видаляти, але, як і попередній каталог, система автоматично відновить його при повторній видачі або продовженні сертифіката.

Також існують обмеження на видачу SSL-сертифікатів - докладніше це описано в технічній документації сертифікаційного центру Let’s Encrypt.

Якщо виникають помилки при видачі SSL, передусім ви можете самостійно видалити вказані каталоги:

  • lets_encrypt в корені вашого хостинг-акаунта;
  • .well-known/acme-challenge в корені директорії вашого сайту.

Потім повторіть спробу видачі сертифіката за вищезазначеною інструкцією.