Давайте посмотрим, как получить БЕСПЛАТНЫЙ сертификат SSL / TLS от ZeroSSL и внедрить его на веб-серверах Apache и Nginx..
Contents
Введение
Возможно, вы много слышали о таком термине, как HTTP и HTTPS. В первые дни был определен протокол, который был назван Протокол передачи гипертекста (HTTP). Это способ общения из браузера на веб-сервер. Когда происходит такое общение, данные, передаваемые по протоколу HTTP, просто передаются в формате открытого текста. В связи с этим выяснилось, что HTTP-связь небезопасна, и хакеры смогли атаковать и перехватывать важные и конфиденциальные сообщения..
Чтобы решить эту проблему, HTTPS протокол вошел в картину. Это безопасный протокол, и аббревиатура расшифровывается как Протокол передачи гипертекста Secure. Он просто выполняет шифрование данных, когда происходит обмен данными, и данные перемещаются из веб-браузера на веб-сервер. Так что если какой-либо хакер получит эту информацию, она будет зашифрована.
Как работает 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
- Email – если вы можете получить письмо на [Электронная почта защищена]
- Загрузка файла – если вы можете загрузить файл в корне домена
Выберите то, что работает для вас. Я продолжу ввод DNS.
- Я добавил CNAME и готов подтвердить домен.
- Наконец, после проверки SSL-сертификат готов к загрузке.
Вот мои скачанные сертификаты.
Пришло время его реализовать.
Внедрение на Apache
Следующее, я установлю Apache на Ubuntu.
Войдите на сервер и установите с помощью команды apt-get.
sudo apt-get установить apache2
Давайте выясним, работает ли Apache с помощью команды systemctl.
[Электронная почта защищена]: ~ # systemctl status 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
14─14196 / usr / sbin / apache2 -k start
14─14199 / usr / sbin / apache2 -k start
14─14200 / usr / sbin / apache2 -k start
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 root root 4096 18 мая 12:13 ./
drwxr-xr-x 92 root root 4096 22 мая 06:07 ../
-rw-r – r– 1 корневой корень 2430 18 мая 05:37 ca_bundle.crt
-rw-r – r– 1 корневой корень 2292 18 мая 05:37 certificate.crt
-rw-r – r– 1 корневой корень 1702 18 мая 05:37 private.key
- Включить модуль SSL
sudo a2enmod SSL
- Нам придется перезапустить веб-сервер, чтобы изменения могли быть распознаны..
перезапуск службы sudo apache2
- Следующим шагом является настройка файлов сертификатов в конфигурационном файле Apache SSL..
cd / etc / apache2 / mods-available
- Название файла 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 status 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 on; (код = выход, статус = 0 / УСПЕХ)
Процесс: 8653 ExecStartPre = / usr / sbin / nginx -t -q -g демон включен; master_process on; (код = выход, статус = 0 / УСПЕХ)
Основной PID: 8664 (nginx)
Задачи: 2 (лимит: 2362)
CGroup: /system.slice/nginx.service
86─8664 nginx: мастер-процесс / usr / sbin / nginx -g включен; master_process on;
8─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 и его внедрении на двух самых популярных веб-серверах..