Angie PRO
Для работы серверных компонентов Indeed CM на ОС Linux настройте веб-сервер Angie PRO в качестве обратного прокси-сервера:
- Установите Angie PRO.
- Установите SSL/TLS-сертификат.
- Настройте конфигурационный файл
angie.conf.
Выберите инструкцию в зависимости от ОС рабочей станции, где вы устанавливаете Angie PRO.
- Debian-based
- RHEL-based
Установка Angie PRO
Angie PRO поставляется в закрытом репозитории, доступ к которому предоставляется вендором в рамках лицензии. Вместе с лицензией вы получите клиентский сертификат angie-repo.crt, закрытый ключ angie-repo.key и файл лицензии license.pem.
Скопируйте клиентский сертификат и ключ в отдельный каталог и выдайте apt права на чтение.
sudo mkdir -p /etc/ssl/angie/
sudo cp angie-repo.crt /etc/ssl/angie/angie-repo.crt
sudo cp angie-repo.key /etc/ssl/angie/angie-repo.key
sudo chown -R _apt:nogroup /etc/ssl/angie/Установите пакеты, необходимые для подключения apt-репозитория.
sudo apt install apt-transport-https ca-certificates curl gnupg2Импортируйте официальный ключ, используемый apt для проверки подлинности пакетов.
sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpgПодключите apt-репозиторий Angie PRO.
echo "deb https://download.angie.software/angie-pro/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/angie.list > /dev/nullСоздайте файл
/etc/apt/apt.conf.d/90download-angieсо следующим содержимым.Acquire::https::download.angie.software::Verify-Peer "true";
Acquire::https::download.angie.software::Verify-Host "true";
Acquire::https::download.angie.software::SslCert "/etc/ssl/angie/angie-repo.crt";
Acquire::https::download.angie.software::SslKey "/etc/ssl/angie/angie-repo.key";Установите Angie PRO.
sudo apt update
sudo apt install angie-proСкопируйте файл лицензии в каталог
/etc/angie/и проверьте конфигурацию.sudo cp license.pem /etc/angie/license.pem
sudo angie -t
Документация по установке на другие ОС доступна на сайте Angie.
Установка SSL/TLS-сертификата
Как выпустить SSL/TLS сертификат
Чтобы установить SSL/TLS-сертификат на веб-сервер:
- Скопируйте файлы сертификата и ключа в папку, которая указана в файле конфигурации Angie PRO.
sudo cp ./SSL.crt /etc/ssl/certs/
sudo cp ./SSL.key /etc/ssl/private/ - Добавьте сертификат корневого УЦ в доверенные на рабочей станции с установленным Angie PRO.
sudo cp ./ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates -f - Сделайте сертификат доверенным в домене, например, с помощью групповых политик.
- Выдайте системному пользователю Angie (задан в директиве
userфайла/etc/angie/angie.conf) права на чтение файлов сертификата.
Настройка конфигурационного файла
Для работы Indeed CM настройте Angie PRO, чтобы веб-сервер обслуживал запросы и отправлял их на проксируемый адрес — сервис Indeed CM.
Работа Angie PRO и его модулей определяется в конфигурационном файле angie.conf, расположенном в каталоге /etc/angie.
Таблица рекомендуемых к использованию директив
| Контекст | Директива | Значение по умолчанию | Рекомендуемое значение | Комментарий |
|---|---|---|---|---|
http | proxy_buffer_size | 4k|8k | 16k | Увеличивается размер прокси буферов для передачи информации в http-запросах. |
proxy_buffers | 8 4k|8 8k | 4 16k | Увеличивается размер прокси буферов для передачи информации в http-запросах. | |
types_hash_max_size | 1024 | 4096 | Увеличивается размер хэш-таблиц для хранения информации из-за большого количества проксируемых сервисов. | |
client_max_body_size | 1m | 10m | Увеличивается допустимый размер загружаемых в систему файлов. | |
large_client_header_buffers | 4 8k | 4 16k | Увеличивается допустимый размер буферов для чтения больших заголовков запроса клиента. Например, длинные URL или файлы cookie. | |
server | listen | 80 | 443 ssl | Измените порт прослушивания на протокол HTTPS, по умолчанию Angie PRO настроен на HTTP. |
3003 ssl | Укажите порт 3003 для дополнительного контекста server, если Indeed CM настроен на работу с клиентскими агентами. | |||
ssl_certificate | — | /etc/ssl/private/SSL.crt | Для работы по HTTPS укажите путь к файлу с цепочкой сертификатов (SSL сертификат, сертификаты промежуточного и корневого УЦ). | |
ssl_certificate_key | — | /etc/ssl/private/SSL.key | Для работы по HTTPS укажите путь к закрытому ключу SSL сертификата. | |
ssl_verify_client | off | optional_no_ca | Добавьте в случае авторизации по сертификату (используется клиентскими агентами) | |
location | proxy_pass | — | * | Один экземпляр контекста location направляет запросы на один адрес — сервис Indeed CM. Таким образом, количество контекстов location должно быть равно количеству сервисов Indeed CM.Точка проксирования указывается в формате: http://localhost:*PORT*/cm/*SERVICENAME*http://localhost:*PORT*/*AGENTSERVICENAME*Где PORT — порт, на котором запущен сервис Indeed CM, SERVICENAME и AGENTSERVICENAME — имя запущенного сервиса. |
include | — | /etc/angie/conf.d/proxy.conf | Некоторые директивы описываются для каждого location. Для компактности конфигурационного файла рекомендуется создать файл с часто используемым набором директив и подключать его в каждый location вместо описывания набора целиком. | |
proxy_http_version | 1.0 | 1.1 | Версия 1.1 рекомендуется для keepalive-подключений и NTLM-аутентификации. | |
proxy_cache_bypass | — | $http_upgrade | Определяет условия, при которых ответ не берется из кэша. | |
proxy_set_header | — | Upgrade $http_upgrade | Определяет переход с HTTP/1.1 на веб-сокет после установки соединения. | |
Connection keep-alive | Для использования keepalive-подключений. | |||
Host $host | Для сохранения в заголовках имени сервера Angie PRO при их передаче сервисам Indeed CM. | |||
X-Real-IP $remote_addr | По умолчанию работа в режиме обратного прокси использует нестандартные заголовки о пользовательском IP адресе, что требует задания данной директивы. | |||
X-Forwarded-For $proxy_add_x_forwarded_for | Определяет формирование заголовка для корректного проксирования. Если в изначальном заголовке нет поля X-Forwarded-For, то $proxy_add_x_forwarded_for = $remote_addr. | |||
X-Forwarded-Proto $scheme | Веб-сервер принимает запросы по HTTPS и проксирует их к HTTP-сервисам Indeed CM для корректной подмены протокола. | |||
fastcgi_buffers | 8 4k|8k | 16 16k | Определяет количество и размер буферов для чтения ответов от FastCGI-сервера на одно подключение. | |
fastcgi_buffer_size | 4k|8k | 32k | Определяет размер буфера для чтения первой части ответа от FastCGI-сервера. | |
proxy_set_header | — | x-ssl-client-cert $ssl_client_escaped_cert | Директива передавать клиентский сертификат при проксировании. Используется клиентскими агентами для авторизации по сертификату. |
Из-за многократного описания контекстов location определенный набор директив повторяется. Для удобства конфигурации вынесите этот набор директив в отдельный файл и включите директивы из этого файла в описание контекста (директива include).
Создайте файл с многократно используемыми директивами. Можно разместить такой файл с расширением CONF в каталоге
/etc/angie/conf.d/.Рекомендуемое содержимое файла proxy.conf для работы с Indeed CMproxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
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 $scheme;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;Сконфигурируйте основной файл конфигурации Angie PRO. Убедитесь, что имена контекстов
locationсовпадают с путем к проксируемому сервису.Пример файла
angie.confдля работы с Indeed CMuser angie;
worker_processes auto;
error_log /var/log/angie/error.log notice;
events { worker_connections 1024; }
http {
proxy_buffer_size 64k;
proxy_buffers 4 64k;
types_hash_max_size 4096;
add_header X-Frame-Options sameorigin always;
add_header X-Content-Type-Options nosniff;
large_client_header_buffers 4 16k;
log_format main '[$time_local] $remote_addr VIA $scheme --- $status --- $request \n $ssl_client_fingerprint';
access_log /var/log/angie/access.log main;
sendfile on;
tcp_nopush on;
include /etc/angie/mime.types;
default_type application/octet-stream;
server {
listen 443 ssl;
server_name $hostname;
ssl_certificate "/etc/ssl/certs/SSL.crt";
ssl_certificate_key "/etc/ssl/private/SSL.key";
location /cm/mc
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5001/cm/mc; }
location /cm/ss
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5002/cm/ss; }
location /cm/rss
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5003/cm/rss; }
location /cm/api
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5004/cm/api; }
location /cm/credprovapi
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5005/cm/credprovapi; }
location /cm/oidc
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5008/cm/oidc; }
location /cm/wizard
{ proxy_pass http://localhost:5009; }
#location /api
#{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5010/api; }
}
server {
listen 3003 ssl;
server_name $hostname;
ssl_certificate "/etc/ssl/certs/SSL.crt";
ssl_certificate_key "/etc/ssl/private/SSL.key";
ssl_verify_client optional_no_ca;
location /agentregistrationapi
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5006/agentregistrationapi; }
location /agentserviceapi
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5007/agentserviceapi;
proxy_set_header x-ssl-client-cert $ssl_client_escaped_cert; }
}
}Чтобы применить изменения в конфигурационном файле, перезагрузите конфигурацию или перезапустите Angie PRO.
sudo angie -s reload
Установка Angie PRO
Angie PRO поставляется в закрытом репозитории, доступ к которому предоставляется вендором в рамках лицензии. Вместе с лицензией вы получите клиентский сертификат angie-repo.crt, закрытый ключ angie-repo.key и файл лицензии license.pem.
Скопируйте клиентский сертификат и ключ в отдельный каталог.
sudo mkdir -p /etc/ssl/angie/
sudo cp angie-repo.crt /etc/ssl/angie/angie-repo.crt
sudo cp angie-repo.key /etc/ssl/angie/angie-repo.keyСоздайте файл
/etc/yum.repos.d/angie.repoсо следующим содержимым:[angie-pro]
name=Angie PRO repo
baseurl=https://download.angie.software/angie-pro/almalinux/$releasever/
sslclientcert=/etc/ssl/angie/angie-repo.crt
sslclientkey=/etc/ssl/angie/angie-repo.key
gpgcheck=1
enabled=1
gpgkey=https://angie.software/keys/angie-signing.gpg.ascЗначение
baseurlзависит от ОС. Полный список значенийbaseurlприведен в документации Angie.Установите Angie PRO.
sudo yum install angie-proСкопируйте файл лицензии в каталог
/etc/angie/и проверьте конфигурацию.sudo cp license.pem /etc/angie/license.pem
sudo angie -t
Документация по установке на другие ОС доступна на сайте Angie.
Установка SSL/TLS-сертификата
Инструкция по выпуску SSL/TLS-сертификата приведена в разделе Выпуск SSL/TLS сертификата статьи по настройке NGINX — шаги по выпуску сертификата не зависят от веб-сервера.
Чтобы установить SSL/TLS-сертификат на веб-сервер:
- Скопируйте файлы сертификата и ключа в папку, которая указана в файле конфигурации Angie PRO.
sudo cp ./SSL.crt /etc/ssl/certs/
sudo cp ./SSL.key /etc/ssl/private/ - Добавьте сертификат корневого УЦ в доверенные на рабочей станции с установленным Angie PRO.
sudo cp ./ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust extract - Сделайте сертификат доверенным в домене, например, с помощью групповых политик.
- Выдайте системному пользователю Angie права на чтение файлов сертификата.
Настройка конфигурационного файла
Настройте Angie PRO, чтобы веб-сервер обслуживал запросы и отправлял их на проксируемый адрес — сервис Indeed CM.
Работа Angie PRO и его модулей определяется в конфигурационном файле angie.conf, расположенном в каталоге /etc/angie.
Таблица рекомендуемых к использованию директив
| Контекст | Директива | Значение по умолчанию | Рекомендуемое значение | Комментарий |
|---|---|---|---|---|
http | proxy_buffer_size | 4k|8k | 16k | Увеличивается размер прокси буферов для передачи информации в http-запросах. |
proxy_buffers | 8 4k|8 8k | 4 16k | Увеличивается размер прокси буферов для передачи информации в http-запросах. | |
types_hash_max_size | 1024 | 4096 | Увеличивается размер хэш-таблиц для хранения информации из-за большого количества проксируемых сервисов. | |
client_max_body_size | 1m | 10m | Увеличивается допустимый размер загружаемых в систему файлов. | |
large_client_header_buffers | 4 8k | 4 16k | Увеличивается допустимый размер буферов для чтения больших заголовков запроса клиента. Например, длинные URL или файлы cookie. | |
server | listen | 80 | 443 ssl | Измените порт прослушивания на протокол HTTPS, по умолчанию Angie PRO настроен на HTTP. |
3003 ssl | Укажите порт 3003 для дополнительного контекста server, если Indeed CM настроен на работу с клиентскими агентами. | |||
ssl_certificate | — | /etc/ssl/private/SSL.crt | Для работы по HTTPS укажите путь к файлу с цепочкой сертификатов (SSL сертификат, сертификаты промежуточного и корневого УЦ). | |
ssl_certificate_key | — | /etc/ssl/private/SSL.key | Для работы по HTTPS укажите путь к закрытому ключу SSL сертификата. | |
ssl_verify_client | off | optional_no_ca | Добавьте в случае авторизации по сертификату (используется клиентскими агентами) | |
location | proxy_pass | — | * | Один экземпляр контекста location направляет запросы на один адрес — сервис Indeed CM. Таким образом, количество контекстов location должно быть равно количеству сервисов Indeed CM.Точка проксирования указывается в формате: http://localhost:*PORT*/cm/*SERVICENAME*http://localhost:*PORT*/*AGENTSERVICENAME*Где PORT — порт, на котором запущен сервис Indeed CM, SERVICENAME и AGENTSERVICENAME — имя запущенного сервиса. |
include | — | /etc/angie/conf.d/proxy.conf | Некоторые директивы описываются для каждого location. Для компактности конфигурационного файла рекомендуется создать файл с часто используемым набором директив и подключать его в каждый location вместо описывания набора целиком. | |
proxy_http_version | 1.0 | 1.1 | Версия 1.1 рекомендуется для keepalive-подключений и NTLM-аутентификации. | |
proxy_cache_bypass | — | $http_upgrade | Определяет условия, при которых ответ не берется из кэша. | |
proxy_set_header | — | Upgrade $http_upgrade | Определяет переход с HTTP/1.1 на веб-сокет после установки соединения. | |
Connection keep-alive | Для использования keepalive-подключений. | |||
Host $host | Для сохранения в заголовках имени сервера Angie PRO при их передаче сервисам Indeed CM. | |||
X-Real-IP $remote_addr | По умолчанию работа в режиме обратного прокси использует нестандартные заголовки о пользовательском IP адресе, что требует задания данной директивы. | |||
X-Forwarded-For $proxy_add_x_forwarded_for | Определяет формирование заголовка для корректного проксирования. Если в изначальном заголовке нет поля X-Forwarded-For, то $proxy_add_x_forwarded_for = $remote_addr. | |||
X-Forwarded-Proto $scheme | Веб-сервер принимает запросы по HTTPS и проксирует их к HTTP-сервисам Indeed CM для корректной подмены протокола. | |||
fastcgi_buffers | 8 4k|8k | 16 16k | Определяет количество и размер буферов для чтения ответов от FastCGI-сервера на одно подключение. | |
fastcgi_buffer_size | 4k|8k | 32k | Определяет размер буфера для чтения первой части ответа от FastCGI-сервера. | |
proxy_set_header | — | x-ssl-client-cert $ssl_client_escaped_cert | Директива передавать клиентский сертификат при проксировании. Используется клиентскими агентами для авторизации по сертификату. |
Из-за многократного описания контекстов location определенный набор директив повторяется. Для удобства конфигурации вынесите этот набор директив в отдельный файл и включите директивы из этого файла в описание контекста (директива include).
Создайте файл с многократно используемыми директивами. Можно разместить такой файл с расширением CONF в каталоге
/etc/angie/conf.d/.Рекомендуемое содержимое файла proxy.conf для работы с Indeed CMproxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
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 $scheme;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;Сконфигурируйте основной файл конфигурации Angie PRO. Убедитесь, что имена контекстов
locationсовпадают с путем к проксируемому сервису.Пример файла
angie.confдля работы с Indeed CMuser angie;
worker_processes auto;
error_log /var/log/angie/error.log notice;
events { worker_connections 1024; }
http {
proxy_buffer_size 64k;
proxy_buffers 4 64k;
types_hash_max_size 4096;
add_header X-Frame-Options sameorigin always;
add_header X-Content-Type-Options nosniff;
large_client_header_buffers 4 16k;
log_format main '[$time_local] $remote_addr VIA $scheme --- $status --- $request \n $ssl_client_fingerprint';
access_log /var/log/angie/access.log main;
sendfile on;
tcp_nopush on;
include /etc/angie/mime.types;
default_type application/octet-stream;
server {
listen 443 ssl;
server_name $hostname;
ssl_certificate "/etc/ssl/certs/SSL.crt";
ssl_certificate_key "/etc/ssl/private/SSL.key";
location /cm/mc
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5001/cm/mc; }
location /cm/ss
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5002/cm/ss; }
location /cm/rss
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5003/cm/rss; }
location /cm/api
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5004/cm/api; }
location /cm/credprovapi
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5005/cm/credprovapi; }
location /cm/oidc
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5008/cm/oidc; }
location /cm/wizard
{ proxy_pass http://localhost:5009; }
#location /api
#{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5010/api; }
}
server {
listen 3003 ssl;
server_name $hostname;
ssl_certificate "/etc/ssl/certs/SSL.crt";
ssl_certificate_key "/etc/ssl/private/SSL.key";
ssl_verify_client optional_no_ca;
location /agentregistrationapi
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5006/agentregistrationapi; }
location /agentserviceapi
{ include /etc/angie/conf.d/proxy.conf; proxy_pass http://localhost:5007/agentserviceapi;
proxy_set_header x-ssl-client-cert $ssl_client_escaped_cert; }
}
}Чтобы применить изменения в конфигурационном файле, перезагрузите конфигурацию или Angie PRO.
sudo angie -s reload