Система Ринго подразумевает использование встроенного веб-сервера, а также автоматический выпуск SSL-сертификатов Let's Encrypt.
Тем не менее, система предусматривает работу за уже существующим Reverse Proxy, который будет отвечать за терминацию SSL.
Для MDM (устройства будут посылать события/результат mdm команд на эти адреса):
Для агента:
Для enroll профиля (Нужны только для скачивания enroll профиля):
Для SCEP Proxy (при использовании Ринго в качестве прокси между SCEP-сервером и клиентом):
Инструкция по настройке nginx для socket.io представлена на официальном сайте
Ниже представлена типовая конфигурация веб-сервера nginx, в рамках которой доступ к веб-интерфейсу Ринго предоставлен только для одной подсети, а доступ к websocket агента и MDM разрешен с любых IP-адресов.
server {
server_name mdm.mydomain.com;
location / {
proxy_pass http://172.30.10.10:5000/;
allow 172.30.10.0/24;
deny all;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Nginx-Proxy true;
}
location /socket.io {
proxy_pass http://172.30.10.10:5000/socket.io/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}
location /mdm {
proxy_pass http://172.30.10.10:5000/mdm;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}
location /scep {
proxy_pass http://172.30.10.10:5000/scep;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}
}
Поскольку за работу с SSL в случае использования внешнего реверс-прокси будет отвечать он же, необходимо отредактировать файл docker-compose.yml перед развертыванием системы.
Ниже показаны строки, которые нужно удалить перед тем, как разворачивать систему:
nginx-proxy:
image: jwilder/nginx-proxy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /apps/docker-articles/nginx/vhost.d:/etc/nginx/vhost.d
- /apps/docker-articles/nginx/certs:/etc/nginx/certs:ro
- /apps/docker-articles/nginx/html:/usr/share/nginx/html
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion:latest
restart: always
depends_on:
- nginx-proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /apps/docker-articles/nginx/vhost.d:/etc/nginx/vhost.d
- /apps/docker-articles/nginx/certs:/etc/nginx/certs:rw
- /apps/docker-articles/nginx/html:/usr/share/nginx/html
Обратите внимание, что в случае отказа от данных контейнеров, сервер будет слушать порт 5000.