Масовий перехід сайтів на роботу по зашифрованому протоколу день за днем набирає обертів. І якщо раніше робота з сертифікатами представляла собою досить рутинну задачу, то сьогодні можна запросто і безкоштовно отримати сертифікат з базової перевіркою приналежності власнику.
Let's Encrypt видає сертифікати з терміном дії, рівним 90 дням. При цьому, оновлення сертифікатів повністю автоматизовано. На даний момент в Debian зі сховищ backports можна встановити пакет certbot, який забезпечує легке отримання сертифікатів і їх автоматичне оновлення, що виконується два рази на добу по крону.
В першу чергу підключаємо репозиторій backports. зі свіжою версією nginx, зібраної з підтримкою ALPN.
А слідом встановити certbot:
Отримуємо сертифікат для Nginx
Щоб отримати сертифікат для цього веб-сервера, буде використовуватися плагін «webroot». який підходить для використання з будь-яким сервером. Навіть якщо це lighttpd.
Команда для отримання сертифіката виглядає так:
Тут після ключа -w вказуємо повний шлях до каталогу з сайтом на сервері. Після ключа -d ім'я домену, для якого потрібно отримати сертифікат. Одночасно можна отримати сертифікати на п'ять доменів. Не забудьте вказати домен з www і без. ;)
Папка з сайтом повинна існувати і бути доступною з інтернету, щоб certbot міг підтвердити приналежність сайту і його коректну роботу.
Отримані сертифікати слід шукати в каталозі /etc/letsencrypt/live/yourdomain.com/. Як сертифіката в конфіги сервера потрібно прописати файл fullchain.pem. а в якості ключа - privkey.pem. приклад:
А що щодо Apache?
Для нього теж можна отримати сертифікат. Годиться як вище описаний метод, так і спеціально задуманий плагін для apache. Тільки в цьому випадку доведеться встановити інший пакет.
А сам сертифікат встановлюється більш простою командою:
Або, якщо ви хочете вручну налаштувати apache:
Природно, сайт і в цьому випадку повинен бути вже налаштований. На жаль, свій досвід використання certbot для apache я не зможу описати, так як давно не користуюся цим веб-сервером. Тому, рекомендую прочитати офіційну документацію англійською.
Аналогічно nginx, шлях до сертифікатів і ключу слід прописати в файлі конфігурації віртуального хоста.
Автоматичне оновлення сертифікатів по крону
Як уже згадувалося раніше, при установці створюється завдання на оновлення в каталозі /etc/cron.d/certbot. виконується двічі на добу. Вміст завдання таке:
При цьому, вся робота certbot записується і його логи ви можете знайти в каталозі / var / log / letsencrypt /. Це може допомогти, якщо у вас виникнуть проблеми. Однак, зі свого досвіду можу зауважити, що такі не виникали, поки що. )