Розглянемо, як отримати безкоштовний SSL / TLS сертифікат від ZeroSSL та реалізувати його на веб-серверах Apache та Nginx.
Contents
Вступ
Можливо, ви багато чого чули про такі терміни, як HTTP та HTTPS. У перші дні був визначений протокол, який був названий як Протокол передачі HyperText (HTTP). Це спосіб спілкування від браузера до веб-сервера. Коли ця комунікація відбувається, дані, що пересуваються за протоколом HTTP, просто переміщуються у чітких текстових форматах. Завдяки цьому було зрозуміло, що зв’язок HTTP не є безпечним, і хакери змогли атакувати та перехоплювати важливі та чутливі повідомлення.
Щоб вирішити це питання, HTTPS Протокол увійшов у світлину. Це захищений протокол, і абревіатура означає Захищений протокол передачі HyperText. Він просто робить шифрування даних, коли комунікація відбувається, і дані переміщуються з веб-браузера на веб-сервер. Так що якщо будь-який хакер забирає цю інформацію, вона все зашифрована.
Як працює HTTPS?
Протокол HTTPS працює на будь-якій з двох речей, тобто SSL (Secure Socket Layer) або TLS (Transport Layer Security). Обидва інструменти використовують інфраструктуру відкритого ключа (PKI). PKI, в свою чергу, використовує два ключі, тобто. публічні та приватні ключі. Все, що шифрується за допомогою відкритого ключа, можна розшифрувати за допомогою приватного ключа та навпаки.
Коли ми встановлюємо сертифікат SSL / TLS на нашому веб-сайті,шифрування данихФункція вмикається. SSL використовується як контрольна точка для забезпечення безпеки даних, що обмінюються через Інтернет між браузером користувача та сервером веб-сайту.
Отримання сертифікату ZeroSSL
ZeroSSL – це орган з сертифікації (CA), який дуже полегшує встановлення сертифікату для всіх, щоб захистити веб-сайт. Ви можете отримати до 3 сертифікатів з терміном дії 90 днів безкоштовно.
- Підпишіться на ZeroSSL
- Після входу в систему відобразиться сторінка нижче. Натисніть на ‘Новий сертифікат. “
- Введіть URL-адресу, яку потрібно захистити, і натисніть кнопку “Наступний крок.“
- Виберіть 90-денний сертифікат та Далі
- Давайте перейдемо до параметра автоматичної генерації CSR
- Продовжуйте розробляти план “Безкоштовно”
Потім потрібно підтвердити право власності на домен. Є кілька варіантів.
- DNS – якщо ви можете додати запис запису DNS
- Електронна пошта – якщо ви можете отримати електронний лист на адресу [захищено електронною поштою]
- Завантаження файлів – якщо ви можете завантажити файл у корені домену
Виберіть те, що працює для вас. Я перейду до запису DNS.
- Я додав CNAME і готовий підтвердити домен.
- Нарешті, після перевірки сертифікат SSL готовий до завантаження.
Ось мої завантажені сертифікати.
Настав час її впровадити.
Реалізація на Apache
Далі я встановлю Apache на Ubuntu.
Увійдіть на сервер та встановіть за допомогою команди apt-get.
sudo apt-get install apache2
Давайте дізнаємося, чи працює Apache за допомогою команди systemctl.
[захищено електронною поштою]: ~ # systemctl статус apache2
● apache2.service – HTTP-сервер Apache
Завантажено: завантажено (/lib/systemd/system/apache2.service; увімкнено; попередньо встановлено постачальник: увімкнено)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Активний: активний (працює) з сб 2020-05-23 16:15:56 UTC; 3 роки тому
Процес: 7852 ExecStop = / usr / sbin / apachectl stop (код = вийшов, статус = 0 / Успіх)
Процес: 14179 ExecStart = / usr / sbin / apachectl start (код = вийшов, статус = 0 / Успіх)
Основний PID: 14196 (apache2)
Завдання: 55 (ліміт: 2362)
CGroup: /system.slice/apache2.service
├─14196 / usr / sbin / apache2 -k початок
├─14199 / usr / sbin / apache2 -k початок
└─14200 / usr / sbin / apache2 -k початок
23 травня 16:15:56 geekflare-lab systemd [1]: запуск HTTP-сервера Apache…
23 травня 16:15:56 geekflare-lab apachectl [14179]: AH00558: apache2: Не вдалося достовірно визначити повноцінне доменне ім’я сервера, використовуючи 127.0.1.1. Встановіть “Подати
23 травня 16:15:56 geekflare-lab systemd [1]: Запущено HTTP-сервер Apache.
Чудово, це біг.
Мій домен (lab.geekflare.com) вже вказує на цей сервер Apache.
Але, як бачите, він не захищений, і тому ми будемо налаштовувати сертифікат, який ми отримали від ZeroSSL.
- Давайте створимо каталог під назвою sslCA під / etc для зберігання файлів сертифікатів.
CD / і т.д.
mkdir sslCA
- Перенесіть файли в новостворену папку на сервері
[захищено електронною поштою]: / etc / sslCA # ll
всього 20
drwxr-xr-x 2 корінь кореня 4096 18 травня 12:13 ./
drwxr-xr-x 92 корінь кореня 4096 22 травня 06:07 ../
-rw-r – r– 1 корінь кореня 2430 18 травня 05:37 ca_bundle.crt
-rw-r – r– 1 корінь кореня 2292 18 травня 05:37 сертифікат.crt
-rw-r – r– 1 корінь кореня 1702 18 травня 05:37 private.key
- Увімкнути модуль SSL
sudo a2enmod SSL
- Нам доведеться перезапустити веб-сервер, щоб зміни можна було розпізнати.
перезапуск служби sudo служби apache2
- Наступним кроком є налаштування файлів сертифікатів у конфігураційному файлі Apache SSL.
cd / etc / apache2 / моди доступні
- Ім’я файлу – ssl.conf. Нам потрібно додати наступне в директиві.
SSLEngine на
SSLCertificateFile /etc/SSLCA/certificate.crt
SSLCertificateKeyFile /etc/SSLCA/private.key
SSLCertificateChainFile /etc/SSLCA/ca_bundle.crt
- Збережіть файл і вийдіть: wq!
Після виконання перезавантаження SSL отримає включення на сайті. Заходимо на сайт за допомогою https: //
І, як бачите, “Зв’язок впевнений ». Це означає, що наш сертифікат SSL успішно застосовано до нашого веб-сервера.
Реалізація на Nginx
Nginx розташований у сховищах Ubuntu за замовчуванням, тому встановити його можна звідси за допомогою відповідної системи упаковки.
- Команда нижче використовується для встановлення “Nginx“.
sudo apt встановити nginx
- Після успішної установки ми можемо запустити Nginx за допомогою команди нижче.
systemctl start nginx
- Перевірте стан Nginx.
[захищено електронною поштою]: ~ # systemctl статус nginx
● nginx.service – веб-сервер із високою продуктивністю та зворотний проксі-сервер
Завантажено: завантажено (/lib/systemd/system/nginx.service; увімкнено; попередньо встановлено постачальник: увімкнено)
Активний: активний (працює) з вторника 2020-05-19 06:54:00 UTC; 4 дні тому
Документи: man: nginx (8)
Процес: 8634 ExecStop = / sbin / start-stop-daemon –quiet – stop –retry QUIT / 5 –pidfile /run/nginx.pid (код = вийшов, статус = 0 / Успіх)
Процес: 8661 ExecStart = / usr / sbin / nginx -g демон на; master_process увімкнено; (код = вийшов, статус = 0 / УСПІХ)
Процес: 8653 ExecStartPre = / usr / sbin / nginx -t -q -g демон на; master_process увімкнено; (код = вийшов, статус = 0 / УСПІХ)
Основний PID: 8664 (nginx)
Завдання: 2 (ліміт: 2362)
CGroup: /system.slice/nginx.service
├─8664 nginx: головний процес / usr / sbin / nginx -g демон на; master_process увімкнено;
└─8707 nginx: робочий процес
19 травня 06:54:00 geekflare-lab systemd [1]: запуск веб-сервера високої продуктивності та зворотного проксі-сервера…
19 травня 06:54:00 geekflare-lab systemd [1]: nginx.service: Не вдалося розібрати PID з файлу /run/nginx.pid: Неправильний аргумент
19 травня 06:54:00 geekflare-lab systemd [1]: Розпочато високоефективний веб-сервер та зворотний проксі-сервер.
- Як очікувалося, браузер покаже попередження, оскільки з’єднання з цим сайтом не захищене.
Давайте швидко реалізуємо сертифікат, щоб зробити сайт захищеним за допомогою HTTPS.
- Створимо файл example.com.conf за адресою /etc/nginx/conf.d. Вміст файлу буде виглядати нижче.
сервер {
прослухати 443 SSL default_server;
прослухати [::]: 443 SSL default_server;
ім’я сервера lab.geekflare.com lab.geekflare.com;
root / var / www / html;
}
- Тепер потрібно додати ім’я файлу сертифіката у файл nginx.conf, який знаходиться в каталозі “/ etc / nginx”.
- Додайте наступне до директиви http
ssl_certificate /etc/sslCA/certificate.crt;
ssl_certificate_key /etc/sslCA/private.key;
- Перезавантажте Nginx, щоб перевірити зміни
systemctl перезапустити nginx
А ось і ми.
Зацікавлені у вивченні Nginx? Перевірте це курс основ.
Тестування конфігурації SSL / TLS
Конфігурація за замовчуванням може бути вразливою, і я настійно пропоную тестування вашого сайту після впровадження сертифіката. Тут ви можете ознайомитись із кількома онлайн-інструментами.
Висновок
Сподіваюся, це дає вам ідею отримати сертифікат від ZeroSSL та реалізувати його на двох найпопулярніших веб-серверах.