Встановлюємо безкоштовний ssl-сертифікат від Let’s Encrypt в Ubuntu 14.04

Let’s Encrypt є некомерційним проектом, який підтримують такі великі компанії як Facebook, Mozilla, Akamai, Cisco, Automattic тощо.

У цьому дописі я опишу, як встановити безкоштовний ssl-сертифікат від Let’s Encrypt в Ubuntu 14.04 для веб-серверу Apache.

1. Для початку нам потрібно оновити сховища пакетів:

sudo apt-get update

2. Встановлюємо git, який використаємо для завантаження клієнта Let’s Encrypt:

sudo apt-get install git

3. Наступна команда завантажить нам репозитарій Let’s Encrypt до директорії /opt :

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

4. Далі переходимо до директорії, у яку ми завантажили репозитарій Let’s Encrypt у попередньому кроці:

cd /opt/letsencrypt

5. Запускаємо скрипт, який згенерує нам ssl-сертифікат для вказаних нами доменів, додаткових піддоменів або псевдонімів. Рекомендується вказувати доменне ім’я верхнього рівня першим у списку:

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

5.1. Після запуску скрипт запропонує вам ввести свій пароль для надання адміністративного доступу, використовуючи команду sudo.

5.2. На наступному кроці вам запропонують вказати свою електронну адресу.

5.3. Далі скрипт запропонує обрати, чи потрібен обов’язковий доступ по https (параметр Secure), чи залишити доступ по http й додати доступ по https (параметр Easy). Рекомендується обирати обов’язковий доступ по https.

5.4. Після цього скрипт додає потрібні параметри до конфігураційних файлів веб-сервера Apache, перезавантажує веб-сервер й завершує свою роботу. Згенерований ssl-сертифікат знаходиться у директорії /etc/letsencrypt/live.

6. Оскільки згенерований ssl-сертифікат діє тільки 90 діб з моменту його генерації, то нам потрібно налаштувати автоматичну генерацію нових ssl-сертифікатів. Для цього використаємо скрипт, який буде запускатися щотижня, перевіряти дату закінчення терміну дії сертифіката для вказаних доменів й оновлювати ssl-сертифікат, якщо термін дії буде меншим за 30 діб.

6.1. Першим кроком завантажуємо скрипт й зробимо його таким, що виконується:

sudo curl -L -o /usr/local/sbin/le-renew http://do.co/le-renew
sudo chmod +x /usr/local/sbin/le-renew

6.2. Далі додаємо у crontab нове завдання, яке буде виконуватися щопонеділка о 2:30 й зберігати результат своєї роботи до файлу /var/log/le-renew.log :

30 2 * * 1 root /usr/local/sbin/le-renew example.com www.example.com webmail.example.com >> /var/log/le-renew.log

7. Цей крок не є обов’язковим. Оновити клієнт Let’s Encrypt можна наступними командами:

cd /opt/letsencrypt
sudo git pull

Ці команди завантажать всі останні зміни в локальне сховище й оновлять клієнт Let’s Encrypt.

PS: Перевірити свій ssl-сертифікат можна за цим посиланням.