🌐 Как добавить и настроить сертификат ZeroSSL в Apache и Nginx? — Information Security Squad
🌐  Как добавить и настроить сертификат ZeroSSL в Apache и Nginx?

Давайте посмотрим, как получить БЕСПЛАТНЫЙ сертификат SSL / TLS от ZeroSSL и внедрить его на веб-серверах Apache и Nginx.

Введение

озможно, вы много слышали о таком термине, как HTTP и HTTPS.

Сначала был определен протокол, который назывался протокол передачи гипертекствой разметки (HTTP).

Это способ связи между браузером и веб-сервером.

Когда происходит такое общение, данные, передаваемые по протоколу HTTP, просто передаются в формате открытого текста.

Из-за этого стало понятно, что HTTP-связь небезопасна, и хакеры смогли атаковать и перехватывать важные и конфиденциальные сообщения атакой Человек по середине.

Чтобы решить эту проблему, протокол был разработан протокол HTTPS.

Это безопасный протокол, и аббревиатура расшифровывается как HyperText Transfer Protocol Secure.

Он просто выполняет шифрование данных, когда происходит их обмен, когда данные перемещаются из веб-браузера на веб-сервер.

Так что если хакер получит эту информацию, она будет зашифрована.

Как работает HTTPS?

Протокол HTTPS работает с любой из двух компонентов: SSL (Secure Socket Layer) или TLS (Transport Layer Security).

Оба инструмента используют PKI (Инфраструктура открытых ключей).

PKI, в свою очередь, использует два ключа, т.е. открытый и закрытый ключи.

Все, что зашифровано с использованием открытого ключа, может быть расшифровано с помощью закрытого ключа и наоборот.

Когда мы устанавливаем сертификат SSL / TLS на наш веб-сайт, включается функция «шифрование данных».

SSL используется в качестве контрольной точки, чтобы гарантировать безопасность данных, которыми обмениваются через Интернет браузер пользователя и сервер сайта.

Получение сертификата ZeroSSL

ZeroSSL — это центр сертификации (CA) или удостоверяющий центр, который позволяет каждому легко установить сертификат для обеспечения безопасности веб-сайта.

👁️ Список из 124 Удостоверящих центров (УЦ) / Certificate Authorities (CA)

Вы можете получить до 3 сертификатов со сроком действия 90 дней бесплатно.

Зарегистрируйтесь на ZeroSSL

После входа появится следующая страница.

Нажмите «New certificate».

Введите URL-адрес, который хотите защитить, и нажмите «Next step».

Выберите 90-дневный сертификат и нажмите Next Step

Давайте продолжим с опцией автоматической генерации CSR

Выбираем бесплатный ( Free ) вариант:

Далее вам необходимо подтвердить право собственности на домен.

Есть несколько вариантов.

  • DNS — если вы можете добавить запись в записи DNS
  • Электронная почта — если вы можете получить электронное письмо по адресу admin@yourdomain.com
  • Загрузка файла — если вы можете загрузить файл в корень домена

Выберите ваш вариант и нажмите Next step.

Наконец, после проверки сертификат SSL готов к загрузке.

Скачайте его.

Установка сертификата на Apache

Далее я установлю Apache на Ubuntu.

Войдите на сервер и установите его с помощью команды apt-get.

sudo apt-get install apache2

Давайте выясним, работает ли Apache с помощью команды systemctl.

# systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Sat 2020-05-23 16:15:56 UTC; 3s ago
  Process: 7852 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
  Process: 14179 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 14196 (apache2)
    Tasks: 55 (limit: 2362)
   CGroup: /system.slice/apache2.service
           ├─14196 /usr/sbin/apache2 -k start
           ├─14199 /usr/sbin/apache2 -k start
           └─14200 /usr/sbin/apache2 -k start

May 23 16:15:56 itsecforu systemd[1]: Starting The Apache HTTP Server...
May 23 16:15:56 itsecforu apachectl[14179]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'Serve
May 23 16:15:56 itsecforu  systemd[1]: Started The Apache HTTP Server.
 Отлично, он работает.
Вы можете проверить работу сервера через браузер.
Но, как вы увидите, он не защищен, и поэтому далее мы будем настраивать сертификат, полученный от ZeroSSL.
Давайте создадим каталог с именем sslCA в /etc для хранения файлов сертификатов.
cd /etc
mkdir sslCA
Переносите файлы во вновь созданную папку на сервере
ll
total 20
drwxr-xr-x  2 root root 4096 May 18 12:13 ./
drwxr-xr-x 92 root root 4096 May 22 06:07 ../
-rw-r--r--  1 root root 2430 May 18 05:37 ca_bundle.crt
-rw-r--r--  1 root root 2292 May 18 05:37 certificate.crt
-rw-r--r--  1 root root 1702 May 18 05:37 private.key

Включите модуль SSL

sudo a2enmod SSL

Нам придется перезапустить веб-сервер, чтобы изменения вступили в силу

sudo service apache2 restart

Следующим шагом является настройка файлов сертификатов в файле конфигурации Apache SSL.

cd /etc/apache2/mods-available
Имя файла — ssl.conf.
Нам нужно добавить следующее в <VirtualHost директиву.
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /etc/SSLCA/certificate.crt
SSLCertificateKeyFile /etc/SSLCA/private.key
SSLCertificateChainFile /etc/SSLCA/ca_bundle.crt</VirtualHost>

Сохраните файл и выйдите :wq!

После перезапуска на сайте включится SSL.
Зайдите на сайт, используя https: //
Вы увидите, «Защищенное соединение» нажав на значок замка.
Это означает, что наш сертификат SSL был успешно добавлен нв ваш веб-сервер.

Установка сертификата на Nginx

Nginx тоже есть в стандартных репозиториях Ubuntu.
sudo apt install nginx
Запустим службу
systemctl start nginx
Проверим статус сервиса
 systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-05-19 06:54:00 UTC; 4 days ago
     Docs: man:nginx(8)
  Process: 8634 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 8661 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 8653 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 8664 (nginx)
    Tasks: 2 (limit: 2362)
   CGroup: /system.slice/nginx.service
           ├─8664 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─8707 nginx: worker process
Как и ожидалось, браузер отобразит предупреждение, так как соединение с этим сайтом небезопасно.
Давайте быстро добавим сертификат для обеспечения безопасности сайта с помощью HTTPS.
Давайте создадим файл example.com.conf в каталоге /etc/nginx/conf.d.
Содержимое файла будет выглядеть следующим образом:
server {
listen              443 SSL default_server;
listen              [::]:443 SSL default_server ;
server_name         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;

Перезапустите службу:

systemctl restart nginx
Готово!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *