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

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

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

Що таке Let’s Encrypt?

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

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

* Сервер Rocky Linux 9 з встановленим Nginx
* Доменне ім’я, вказане в /etc/hostname або налаштованих на сервері DNS-записах
* Підключення до Інтернету

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

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

1. Встановіть інструмент командного рядка Certbot:


sudo dnf install certbot

2. Запустіть скрипт Certbot для отримання сертифіката:


sudo certbot --nginx

3. Дотримуйтесь інструкцій у майстрі Certbot:

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

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;

Включає рекомендовані налаштування SSL

}

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


sudo systemctl restart nginx

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

Щоб перевірити, чи правильно встановлено сертифікат Let’s Encrypt, виконайте такі дії:

1. Відкрийте браузер і введіть адресу свого веб-сайту із захищеною адресою HTTPS:


https://example.com

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

Це вказує на те, що з’єднання з вашим веб-сайтом захищене.

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

https://www.ssllabs.com/ssltest/

Введіть адресу свого веб-сайту та натисніть “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. Чи можу я використати власний центр сертифікації (CA) замість 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.