HTTP доступ

Примечание:
<loc.io> - домен локации.

Для создания HTTP доступа пользователю необходимо выполнить следующие действия:

  1. Заказать сервис в Compute (например, CentOS 8.3)

  1. Настроить VPN-доступ в сервисе VPN

  2. Подключиться к виртуальной машине, например, по SSH (ssh root@1.1.1.1)

  3. Установить веб-сервер

  • Установите веб-сервер (в качестве примера: apache):
sudo yum install -y httpd
  • Запустите веб-сервер:
sudo systemctl enable httpd —now
  • Проверьте, что веб-сервер запущен:
sudo systemctl status httpd

Вывод команды (пример):

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2022-05-25 10:34:11 +03; 7s ago
     Docs: man:httpd.service(8)
Main PID: 103004 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 23512)
   Memory: 26.4M
   CGroup: /system.slice/httpd.service
           ├─103004 /usr/sbin/httpd -DFOREGROUND
           ├─103005 /usr/sbin/httpd -DFOREGROUND
           ├─103006 /usr/sbin/httpd -DFOREGROUND
           ├─103007 /usr/sbin/httpd -DFOREGROUND
           └─103008 /usr/sbin/httpd -DFOREGROUND
 
May 25 10:34:11 alb-demo1.pt35.cmp.loc.io systemd[1]: Starting The Apache HTTP Server...
May 25 10:34:11 alb-demo1.pt35.cmp.loc.io systemd[1]: Started The Apache HTTP Server.
May 25 10:34:11 alb-demo1.pt35.cmp.loc.loc.io httpd[103004]: Server configured, listening on: port 80
  • Вспомогательные команды для работы веб-севера:

Перезагрузка конфигурации (при изменении файлов конфигурации):

sudo systemctl reload httpd

Перезагрузка веб-сервера:

sudo systemctl restart httpd
  • Проверка работы веб-сервера:
    Добавить в файл /var/www/html/index.html любой текст,
    например: “Hello from alb-demo1.pt35.cmp.loc.io”
[root@alb-demo1 ~]# curl http://localhost
Hello from alb-demo1.pt35.cmp.loc.io
  1. Настройка системного Firewall По умолчанию, системный Firewall блокирует весь HTTP и HTTPS трафик, который приходит извне на порты 80 и 443. Для отключения блокировки, необходимо добавить сервисы http, https в правила firewall. Для необходимо выполнить команды:
 sudo firewall-cmd —permanent —zone=public —add-service=http
 sudo firewall-cmd —permanent —zone=public —add-service=https

Для того, чтобы правила применились, нужно перезагрузить конфигурацию firewall:
sudo firewall-cmd —reload

Проверить, что правила прописаны:

sudo firewall-cmd —list-all
 
 public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: cockpit dhcpv6-client http https ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
  1. Создать публичный маршрут в сервисе Load Balancer.

Для этого нажмите Create Route и заполните параметры (пример):

  1. После создания публичного маршрута для корректной работы пользователю необходимо во вкладке DNS Domains указать, что cервер alb-demo1.pt35.cmp.loc.io ссылается на публичный хост (или IP адрес) балансировщика аккаунта, который указан на странице со всеми веб-маршрутами. В данном случае – это pt35.alb.loc.io.

Для добавления записи в DNS перейдите во вкладку DNS domains. Выберите необходимый DNS домен (pt35.cmp.loc.io):

В ней создайте запись типа CNAME:

Проверьте, что публичный маршрут работает:

В адресной строке браузера введите http://alb-demo1.pt35.cmp.loc.io

HTTPS доступ (автоматический выпуск сертификатов)

Edge-терминация

При создании маршрута пользователю необходимо поставить галочку Безопасный маршрут и выбрать тип TLS ТерминацииEdge.

Небезопасный трафик:

  • Allow – автоматическое перенаправления с http на https происходить не будет,
  • Redirect – автоматическое перенаправление на https.

Если TLS Сертификат не выбран (None), то будет сгенерирован LetsEncrypt сертификат.

Проверьте, что публичный маршрут работает:
В адресной строке браузера введите http://alb-demo1.pt35.cmp.loc.io

Re-encrypt-терминация

Если на конечном виртуальном сервере используется протокол HTTPS, то необходимо выбирать данную опцию.

При создании такого маршрута пользователю необходимо поставить галочку Безопасный маршрут и выбрать тип TLS ТерминацииRe-encrypt.

Небезопасный трафик:

  • Allow – автоматическое перенаправления с http на https происходить не будет,
  • Redirect – автоматическое перенаправление на https.

Если TLS Сертификат не выбран (None), то будет сгенерирован LetsEncrypt сертификат.

Passthrough-терминация

При создании такого маршрута пользователю необходимо поставить галочку Безопасный маршрут и выбрать тип TLS ТерминацииPassthrough.

Небезопасный трафик:

  • Allow – автоматическое перенаправления с http на https происходить не будет,
  • Redirect – автоматическое перенаправление на https.

HTTPS-доступ с использованием собственных сертификатов

Загрузите имеющийся у вас сертификат в диалоге загрузки сертификатов.

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