Як захистити Nginx за допомогою Let’s Encrypt на Rocky Linux 9

Nginx є поширеним веб-сервером з відкритим кодом, відомим своєю ефективністю та стабільністю. Хоча Nginx сам по собі достатньо надійний, застосування додаткового рівня безпеки за допомогою сертифіката SSL/TLS є критично важливим для забезпечення захисту веб-сайту від різноманітних загроз.

Що таке Let’s Encrypt?

Let’s Encrypt – це безкоштовний, автоматизований та відкритий центр сертифікації, який надає доменам перевірені сертифікати SSL/TLS. Ці сертифікати підтримуються більшістю сучасних браузерів і допомагають захистити ваш веб-сайт від перехоплення даних та атак “людина посередині”.

Необхідні передумови

  • Сервер Rocky Linux 9 з встановленим Nginx.
  • Доменне ім’я, правильно налаштоване в файлі /etc/hostname або в DNS-записах вашого сервера.
  • Активне підключення до мережі Інтернет.

Процес встановлення сертифіката Let’s Encrypt

Найпростіший спосіб отримати та встановити сертифікат Let’s Encrypt для Nginx на Rocky Linux 9 – це скористатись офіційним скриптом Certbot, розробленим Electronic Frontier Foundation (EFF), творцями Let’s Encrypt.

  1. Інсталяція утиліти Certbot:

    sudo dnf install certbot

  2. Запуск Certbot для генерації сертифіката:

    sudo certbot --nginx

  3. Слідуйте підказкам Certbot:

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

  4. Введення доменного імені веб-сайту:

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

  5. Вибір методу перевірки (автоматичний за замовчуванням):

    Certbot намагається автоматично підтвердити ваше право власності на домен, перенаправляючи запити на порт 80. Якщо автоматична перевірка не буде успішною, вам буде запропоновано провести перевірку вручну за допомогою файлу .well-known або іншим методом.

  6. Установка сертифіката:

    Після успішної перевірки, Certbot встановить сертифікат SSL/TLS для вашого домену.

Налаштування Nginx для використання сертифіката Let’s Encrypt

Після успішної генерації сертифіката Let’s Encrypt, потрібно налаштувати Nginx для його використання.

  1. Резервне копіювання конфігураційного файлу Nginx:

    sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

  2. Редагування конфігураційного файлу Nginx:

    sudo nano /etc/nginx/nginx.conf

  3. Пошук блоку server { } для вашого домену:


    server {
       listen 80;
       server_name example.com;
       ...
    }

  4. Додавання блоку listen для HTTPS:


    server {
      listen 80;
      server_name example.com;
      ...
      listen 443 ssl;
      ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
      include /etc/letsencrypt/options-ssl-nginx.conf;
    }

  5. Збереження змін та перезапуск Nginx:

    sudo systemctl restart nginx

Перевірка сертифіката

Для перевірки правильності встановлення сертифіката Let’s Encrypt:

  1. Відкрийте браузер і перейдіть на захищену адресу HTTPS:

    https://example.com

  2. Перевірте наявність зеленого значка замка в адресному рядку:

    Це свідчить про те, що з’єднання з вашим веб-сайтом захищене.

  3. Використайте онлайн-інструмент перевірки SSL:

    SSL Labs

    Введіть адресу вашого веб-сайту та натисніть “Submit”. Інструмент покаже детальну інформацію про сертифікат та налаштування SSL на вашому сервері.

Управління сертифікатами Let’s Encrypt

Сертифікати Let’s Encrypt є дійсними протягом 90 днів. Certbot автоматично оновлює їх до закінчення терміну дії за допомогою запланованого завдання cron.

Висновок

Інсталяція сертифіката SSL/TLS від Let’s Encrypt для Nginx на Rocky Linux 9 є важливим кроком для підвищення безпеки вашого веб-сайту. Це гарантує шифрування даних, які передаються між користувачами та сервером, захищаючи їх від перехоплення та атак “людина посередині”. Сертифікати Let’s Encrypt є безкоштовними, автоматично поновлюються та легко встановлюються, що робить їх зручним вибором для забезпечення безпеки вашого веб-сайту.

FAQ

  1. Чи можна використовувати Let’s Encrypt для захисту декількох доменів на одному сервері?

    Так, Certbot може генерувати сертифікати для кількох доменів. Просто виберіть потрібні домени під час запуску майстра Certbot.

  2. Чи вплине встановлення сертифіката SSL/TLS на продуктивність сайту?

    Шифрування та дешифрування даних може незначно вплинути на продуктивність, але сучасні алгоритми SSL/TLS є дуже ефективними, і вплив, як правило, є мінімальним.

  3. Чи потрібно оновлювати сертифікат SSL/TLS вручну?

    Ні, Certbot автоматично поновлює сертифікати до їх закінчення за допомогою запланованого завдання cron.

  4. Що станеться, якщо сертифікат SSL/TLS закінчиться?

    Якщо сертифікат SSL/TLS закінчиться, ваш веб-сайт стане недоступним по протоколу HTTPS. Важливо відстежувати термін дії сертифіката та своєчасно поновлювати його.

  5. Чи захищає сертифікат SSL/TLS від усіх видів атак?

    Сертифікат SSL/TLS захищає від атак “людина посередині” та перехоплення даних, але він не гарантує безпеку від усіх типів атак. Інші заходи безпеки, такі як брандмауери та моніторинг безпеки, також є важливими для забезпечення комплексного захисту.

  6. Чи можна використати власний центр сертифікації замість Let’s Encrypt?

    Так, ви можете використовувати власний CA для підписання сертифікатів SSL/TLS. Однак це є більш складним процесом, який вимагає створення та керування власною інфраструктурою відкритого ключа (PKI).

  7. Я отримую помилку під час встановлення сертифіката Let’s Encrypt. Що робити?

    Перегляньте логи сервера та повідомлення про помилки Certbot. Ви також можете звернутися до документації Certbot або до спільноти Let’s Encrypt за додатковою допомогою.

  8. Чи є альтернативи Let’s Encrypt для отримання сертифікатів SSL/TLS?

    Так, є інші центри сертифікації, які пропонують безкоштовні та платні сертифікати SSL/TLS. Деякі з популярних альтернатив: ZeroSSL, Cloudflare та SSL.com.