Как включить протокол HTTPS на AlmaLinux 10?

HTTPS – это защищенный протокол передачи гипертекста, который является защищенной версией протокола HTTP. Для повышения безопасности протокол HTTPS отправляет зашифрованные данные между веб-браузерами и веб-сайтами. Это очень важно, когда пользователь передает конфиденциальные данные, такие как вход в систему, хранение информации о кредитной карте, оплата онлайн и т. д. HTTPS использует протокол SSL (Secure Socket Layer) для шифрования передаваемых данных и проверки подлинности сервера.

Необходимые условия

  • Сервер под управлением AlmaLinux 10
  • Действующий домен, указанный на IP-адрес сервера
  • Привилегии пользователя: root или не root пользователь с привилегиями sudo

Что такое протокол HTTPS и как его можно включить?

Протокол HTTPS – это безопасный способ доступа к веб-сайтам и передачи зашифрованных данных. Протокол HTTPS использует протокол SSL, и чтобы включить HTTPS в AlmaLinux 10, нам нужно установить SSL-сертификат. SSL-сертификаты позволяют веб-сайтам использовать HTTPS. SSL-сертификат – это файл данных, размещенный на сервере сайта. Итак, в данном случае для включения HTTPS на AlmaLinux 10 нам нужен сайт, доменное имя, SSL-сертификат для этого домена и самые необходимые файлы конфигурации веб-сервера. В качестве веб-серверов мы можем использовать Apache, Nginx и LiteSpeed. В этой статье мы будем использовать веб-сервер Apache, поэтому в следующих параграфах мы покажем вам точные шаги по включению HTTPS на вашем сайте.

Шаг 1. Обновить систему

Перед выполнением любой команды на сервере рекомендуется обновить системные пакеты до последней доступной версии. Для этого выполните эту команду в командной строке:

sudo dnf update -y && sudo dnf upgrade -y

Шаг 2. Установите веб-сервер Apache

Чтобы установить веб-сервер Apache, выполните приведенную ниже команду:

sudo dnf install httpd -y

После установки запустите и включите службу для автоматического запуска при загрузке системы:

sudo systemctl start httpd && sudo systemctl enable httpd

Проверьте состояние службы:

sudo systemctl status httpd

Вы должны получить следующее сообщение:

root@host ~]# sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
     Active: active (running) since Mon 2025-04-07 15:22:35 CDT; 7min ago
 Invocation: 0d69cef33f884d6d9f8179803a955931
       Docs: man:httpd.service(8)
   Main PID: 97965 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 177 (limit: 23175)
     Memory: 13.8M (peak: 14.1M)
        CPU: 685ms
     CGroup: /system.slice/httpd.service
             ├─97965 /usr/sbin/httpd -DFOREGROUND
             ├─97966 /usr/sbin/httpd -DFOREGROUND
             ├─97967 /usr/sbin/httpd -DFOREGROUND
             ├─97968 /usr/sbin/httpd -DFOREGROUND
             └─97969 /usr/sbin/httpd -DFOREGROUND
Apr 07 15:22:34 host.test.vps systemd[1]: Starting httpd.service - The Apache HTTP Server..

Шаг 3. Установите Socat и Acme

Нам необходимо установить на наш сервер некоторые предварительные условия для работы поддельного веб-сервера и поддержки клиентов:

sudo dnf install socat -y && sudo curl https://get.acme.sh | sh && source ~/.bashrc

Шаг 4. Установите бесплатный сертификат ZeroSSL

ZeroSSL – это бесплатный центр сертификации SSL, созданный CodeNotary, компанией, известной своими решениями в области неизменяемости и блокчейна для обеспечения целостности данных. Чтобы установить ZeroSSL, сначала нужно создать учетную запись ZeroSSL:

acme.sh --register-account -m admin@your_domain.com --server zerossl

Вы должны получить следующее сообщение:

[root@host conf.d]# acme.sh --register-account -m admin@yourdomain.com --server zerossl
[Mon Apr  7 16:19:37 CDT 2025] Account key creation OK.
[Mon Apr  7 16:19:37 CDT 2025] No EAB credentials found for ZeroSSL, let's obtain them
[Mon Apr  7 16:19:37 CDT 2025] Registering account: https://acme.zerossl.com/v2/DV90
[Mon Apr  7 16:19:40 CDT 2025] Registered
[Mon Apr  7 16:19:40 CDT 2025] ACCOUNT_THUMBPRINT='ZmR7AOpN7-zg72TcIUXIzFftKyidkjA6oF-fvf9pXoc'

Далее нам нужно остановить службу HTTPD, поскольку генерация ZeroSSL с помощью скрипта acme.sh требует, чтобы порт 80 был свободен.

sudo systemctl stop httpd

Как только служба httpd будет остановлена, мы сможем сгенерировать ZeroSSL с помощью acme.sh:

acme.sh --issue --standalone -d your_domain.com --server zerossl

Вы должны получить следующий результат:

[Mon Apr  7 16:24:29 CDT 2025] Your cert is in: /root/.acme.sh/yourdomain.com_ecc/yourdomain.com.cer
[Mon Apr  7 16:24:29 CDT 2025] Your cert key is in: /root/.acme.sh/yourdomain.com_ecc/yourdomain.com.key
[Mon Apr  7 16:24:29 CDT 2025] The intermediate CA cert is in: /root/.acme.sh/yourdomain.com_ecc/ca.cer
[Mon Apr  7 16:24:29 CDT 2025] And the full-chain cert is in: /root/.acme.sh/yourdomain.com_ecc/fullchain.cer

Шаг 5. Создайте файл конфигурации Apache

Если вы обратитесь к IP-адресу вашего сервера в браузере, то браузер вернет стандартную страницу приветствия Apache. Однако установить SSL-сертификат на IP-адрес невозможно. Поэтому нам нужно настроить файл конфигурации Apache, чтобы сайт был доступен через доменное имя. Для этого создайте следующий файл:

touch /etc/httpd/conf.d/website.conf

После этого откройте его с помощью вашего любимого текстового редактора и вставьте следующие строки кода:

ServerName yourdomain.com
     DocumentRoot /var/www/html
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     ErrorLog /var/log/httpd/yourdomain.com_error.log
     CustomLog /var/log/httpd/yourdomain.com.log combined
    Redirect permanent / https://yourdomain.com
 ServerName yourdomain.com
 DocumentRoot /var/www/html
 SSLEngine on
 SSLCertificateFile /root/.acme.sh/yourdomain.com_ecc/fullchain.cer
 SSLCertificateKeyFile /root/.acme.sh/yourdomain.com_ecc/yourdomain.com.key

Сохраните файл, закройте его и проверьте синтаксис конфигурационного файла Apache.

httpd -t

Вы должны получить следующий результат

[root@host conf.d]# httpd -t
Syntax OK

Перезапустите службу httpd.service.

sudo systemctl restart httpd

Теперь вы можете получить безопасный доступ к вашему сайту через ваш домен по протоколу HTTPS по адресу https://yourdomain.com.

Вот и все. Вы успешно включили протокол HTTPS в ОС AlmaLinux 10.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)