Як убезпечити Apache за допомогою Let's Encrypt на Ubuntu 14.04

Вступ

Цей урок покаже вам, як налаштувати TLS / SSL сертифікат від Let's Encrypt під систему Ubuntu 14.04, що працює на веб сервері Apache.

Також ми розглянемо, як автоматизувати процес оновлення сертифіката за допомогою cron job.

 

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

 

Вимоги

Для того, щоб слідувати нижченаведеним інструкціям Вам потрібно:

 

  • Сервер на Ubuntu 14.04 зі звичайною обліковим записом (sudo), який Ви зможете налаштувати слідуючи нашому керівництву по встановленню сервера.
  • Встановлений Веб-сервер Apache з парою коректно налаштованих доменів.

 

Коли будете готові продовжити, підключіться до сервера використовуючи Ваш обліковий запис (sudo).

 

Крок 1. Встановлення модулів

 

Перше, що нам потрібно зробити, це обновити кеш диспетчера пакетів:

 

$ sudo apt-get update

 

Далі нам знадобиться git для завантаження Let's Encrypt Client. Для встановлення git , виконайте наступну  команду:

 

$ sudo apt-get install git

 

Крок 2. Завантаження Let's Encrypt Client.

 

Далі ми завантажимо Let's Encrypt Client з офіційного сховища, помістивши його файли в певному місці на сервері. Це буде зроблено для того, щоб полегшити процес оновлення файлів сховища, як тільки новий реліз стане доступним.

 

Оскільки Let's Encrypt Client все ще перебуває в стадії розробки, для виправлення помилок і впровадження нових функціональних можливостей можуть знадобитися постійні оновлення.

 

Ми скопіюємо сховище Let's Encrypt в директорію /opt, яка є стандартною для розміщення стороннього програмного забезпечення на системах Unix:

 

$ sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

 

Це створить локальну копію офіційного сховища Let's Encrypt під / Opt / letsencrypt.

 

Крок 3. Налаштування SSL-сертифікату

 

Створення SSL сертифікату для Apache за допомогою Let's Encrypt Client досить просте. Клієнт автоматично отримає і встановить новий SSL сертифікат, який дійсний для доменів, наданих в якості параметрів.

 

Доступ до каталогу letsencrypt:

 

$ cd /opt/letsencrypt

 

Щоб виконати онлайн встановлення і отримати сертифікат, який охоплює тільки один домен, виконайте команду letsencrypt-auto з:

 

$ ./letsencrypt-auto --apache -d example.com

 

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

 

$ ./letsencrypt-auto --apache -d example.com -d www.example.com

 

Для цього прикладу базовий домен буде example.com.

 

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

 

 

Коли установка буде завершена, ви повинні будете знайти згенеровані файли сертифікатів в

/etc/letsencrypt/live. Ви можете перевірити статус вашого SSL сертифікату за допомогою наступного посилання (не забудьте замінити example.com на ваш базовий домен):

 

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

 

Тепер ви можете отримати доступ до веб-сайту, використовуючи HTTPS.

 

Крок 4. Налаштування автопродовження

 

Сертифікати Let's Encrypt дійсні протягом 90 днів, але рекомендується продовжує термін дії сертифікатів кожні 60 днів, щоб уникнути помилок. Let's Encrypt має команду renew, яка автоматично перевіряє встановлені сертифікати і намагається відновити їх, якщо вони менш ніж за 30 днів від дати закінчення терміну придатності.

 

Щоб запустити процес оновлення для всіх встановлених доменів, ви повинні виконати:

 

./letsencrypt-auto renew

 

Так як ми недавно встановили сертифікат, то команда буде перевіряти тільки дату закінчення терміну дії та видасть повідомлення, що повідомляє про те, що сертифікат ще продовжувати не треба. Результат повинен виглядати приблизно так:

 

Checking for new version...
Requesting root privileges to run letsencrypt...
/root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/example.com.conf

The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

 

Зверніть увагу, якщо ви створили сертифікат в комплекті з кількома доменами, тільки базовий домен буде показаний в результаті, але оновлення має бути дійсним для всіх доменів, включених в цей сертифікат.

 

Практичний спосіб переконатися в тому, що ваші сертифікати не будуть застарівати, це створити cron job, який буде періодично виконувати автоматичну команду продовження. Оскільки оновлення спочатку перевіряє дату закінчення терміну дії та виконує продовження тільки якщо сертифікат знаходиться менш ніж за 30 днів до закінчення терміну дії, буде безпечніше створити cron job, який виконується щотижня або навіть, наприклад, кожен день.

 

Давайте відредагуємо crontab щоб створити новий cron, який буде виконувати команду поновлення щотижня. Для редагування crontab для користувача root, виконайте наступну команду:

$ sudo crontab -e

 

Додайте наступний зміст, все в одному рядку:


30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

 

Збережіть і вийдіть. Це створить новий cron job, який буде виконувати команду letsencrypt-auto renew щопонеділка о 2:30 ранку. Результат, що генерується командою, буде надходити в лог-файл, розташований в

/var/log/le-renewal.log.

 

Крок 5. Оновлення Let’s Encrypt Client (не обов'язково)

 

Всякий раз, коли будуть доступні нові оновлення для Let's Encrypt Client, ви можете оновити локальну копію, запустивши git pull всередині каталогу Let's Encrypt:

 

$ cd /opt/letsencrypt

$ sudo git pull

Це дозволить завантажити всі останні зміни в сховище, оновлюючи при цьому Let's Encrypt Client.

 

Підсумок

У цьому керівництві ми побачили як встановити безкоштовний SSL сертифікат від Let's Encrypt для того щоб убезпечити веб-сайт, розміщений на Apache. Оскільки Let's Encrypt client все ще знаходиться в бета-версії, ми рекомендуємо вам час від часу перевіряти офіційний блог Let's Encrypt на наявність оновлень.

Ця відповідь Вам допомогла? 1 Користувачі, які знайшли це корисним (1 Голосів)