SSL (Secure Sockets Layer) — це технологія шифрування, яка захищає дані, що передаються між сервером і клієнтом. Встановити SSL-сертифікат на сервер варто, тому що цей підхід дає має кілька ключових переваг:
- Безпека: захищає дані користувачів, такі як паролі, платіжні реквізити та особисту інформацію, від перехоплення.
- Довіра користувачів: браузери відображають значок “замка” біля URL-адреси, що свідчить про безпечне з’єднання.
- SEO-переваги: пошукові системи, такі як Google, надають перевагу сайтам із HTTPS у результатах пошуку.
- Відповідність вимогам: багато сервісів і законодавчих норм вимагають використання HTTPS для забезпечення безпеки.
Let’s Encrypt – це безкоштовний, автоматизований та відкритий центр сертифікації (CA), який дозволяє отримувати SSL-сертифікати для забезпечення шифрування HTTPS. У цій статті розглянемо, як встановити Let’s Encrypt на Ubuntu, налаштувати автоматичне продовження сертифіката та інтегрувати його з веб-сервером Apache.
Установка Certbot
Якщо ви використовуєте Debian Buster або Debian testing/Sid, ви можете просто встановити Certbot командами:
sudo apt-get update
sudo apt-get install certbot
Створення сертифіката
Зупиняємо Apache:
sudo service apache2 stop
Зупиняти Apache під час створення або продовження сертифіката потрібно тому, що Certbot у режимі standalone
працює як веб-сервер (прослуховує порт 80). Щоб уникнути конфліктів, веб-сервер потрібно зупинити, інакше побачите повідомлення про помилку.
Запускаємо Certbot (замість YOUR_DOMAIN
введіть ваш домен):
sudo certbot certonly --standalone -d YOUR_DOMAIN
Під час виконання команди вам буде запропоновано ввести email, прийняти умови використання Let’s Encrypt та (опційно) погодитися на отримання новин від EFF.
Процес отримає сертифікат і згенерує файли у /etc/letsencrypt/live/YOUR_DOMAIN/
.
Налаштування SSL у Apache
У файлі /etc/apache2/sites-enabled/YOUR_DOMAIN.conf
чи іншому, що відповідає за налаштування вашого сайту, додайте рядки:
SSLCertificateFile /etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem
Запускаємо Apache:
sudo service apache2 start
Тепер можна відкрити сайт у браузері та перевірити, чи вважає його браузер безпечним.
Налаштування автоматичного продовження сертифіката
Certbot автоматично додає задачу в cron або systemd для перевірки та продовження сертифіката. Переконайтеся, що вона є, наступною командою:
systemctl list-timers --all | grep certbot
Щоб уникнути збоїв, потрібно налаштувати хук, який зупинятиме Apache перед продовженням сертифіката та запускатиме його після. Також в ці хуки ви можете додати інші скрипти, які б ви хотіли синхронізувати з оновленням сертифікату:
sudo sh -c 'printf "#!/bin/sh\nservice apache2 stop\n" > /etc/letsencrypt/renewal-hooks/pre/apache.sh'
sudo sh -c 'printf "#!/bin/sh\nservice apache2 start\n" > /etc/letsencrypt/renewal-hooks/post/apache.sh'
sudo chmod 755 /etc/letsencrypt/renewal-hooks/pre/apache.sh
sudo chmod 755 /etc/letsencrypt/renewal-hooks/post/apache.sh
На цьому встановлення та налаштування SSL-сертифіката завершено!