Главная

Thursday, 3 September 2020

SSL доступ к AWX.

Всем привет.

Думаю будет полезным использовать SSL для доступа к AWX. Проще всего сделать это через отключение порта 80 в межсетевом экране от внешнего мира и поставить перед ним некую настройку разгрузки SSL. Это может быть балансировщик нагрузки, обратный прокси или даже известная утилита stunnel. Например, если мы установили AWX в Ubuntu, то можем сделать так.

Прежде всего мы установим NGINX:
sudo apt install nginx

Затем мы воспольземся неким сертификатом SSL для его применения в NGINX. Если у вас такой имеется, скопируйте этот сертификат и связанный с ним общедоступный ключ в следующие местоположения:
- cертификат: /etc/pki/tls/certs/mastery.example.com.crt
- общедоступный ключ: /etc/pki/tls/private/awx-master.forza.com.key

Если у вас нет сертификата SSL, вы запросто можете сгенерировать некий с самостоятельной подписью для выполнения данного примера при помощи такой команды:
openssl req -x509 -nodes -newkey rsa:4096 -keyout /etc/pki/tls/private/awx-master.forza.com.key -out /etc/pki/tls/certs/awx-master.forza.com.crt -days 3650 -subj "/C=GB/CN=awx-master.forza.com"

Имя сертификата должно соответствовать имени хоста вашей системы AWX.

После того как вы поместили на своё место сертификат, создайте файл /etc/nginx/conf.d/awx.conf со следующим содержанием:
server {
  listen 443 ssl;
  server_name awx-master.forza.com;
ssl on;
  ssl_certificate /etc/pki/tls/certs/awx-master.forza.com.crt;
  ssl_certificate_key /etc/pki/tls/private/awx-master.forza.com.key;
location / {
  proxy_pass http://127.0.0.1:80;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
}


Теперь отредактируйте /etc/nginx/nginx.conf и измените те строки, которые сообщают ему о необходимости ожидания по порту 80 на иной порт, который мы больше не используем - один из ранее созданных контейнеров Docker уже будет выполнять ожидание по порту 80, а потому наша служба nginx не запустится пока мы не выполним такое переназначение:
server {
  listen 81 default_server;
  listen [::]:81 default_server;
   }

Включите и запустите службу nginx:
sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Наконец, мы откроем порт 443 в своём локальном межсетевом экране чтобы позволить обмен по нему:
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Теперь мы располагаем полностью настроенной службой https AWX и пользователи должны иметь возможность осуществлять к ней доступ при помощи SSL.

Успехов. 

No comments:

Post a Comment

А что вы думаете по этому поводу?