Для того, чтобы платформа работала по протоколу HTTPS, необходимо установить сертификат на вашем сервере. Для этого выполните следующие шаги:
Поместите файл сертификата, ключа и, если есть, пароля (certificate.crt
, privatekey.key
, password.pass
) в папку /var/lib/visiology/certs
на вашем сервере.
Приведённые выше имена файлов заданы по умолчанию, поэтому, если требуется их переименование, вы можете сделать это в соответствующей секции кода ниже.
В файле reverse-proxy.yml
замените тело секции services.reverse-proxy.environment
на код ниже:
HTTPS_SECTION_HTTP: |
# HTTPS server optimization section
# This will create a cache shared between all worker processes
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
#ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
# Redirect HTTP to HTTPS section
server {
listen 80;
return 301 https://$$host$$request_uri;
}
HTTPS_SECTION_SERVER: |
listen 443 ssl http2;
ssl_certificate /mnt/volume/certificate.crt;
ssl_certificate_key /mnt/volume/privatekey.key;
#ssl_password_file /mnt/volume/password.pass;
HTTP_SECTION_SERVER: |
Если у вас есть файл пароля ключа, то необходимо раскомментировать строку ssl_password_file
.
Запуск платформы
При запуске run.sh
требуется добавить аргумент --https true
Возможные неполадки и пути их устранения
Проблема: не удаётся зайти на платформу, когда она настроена для работы по HTTPS.
В этом случае, необходимо выполнить следующие шаги:
Проверьте, что сервис reverse-proxy
запущен, выполнив следующую команду:
docker servece ls | grep reverse-proxy
Если он не запущен, просмотрите его логи:
docker service logs visiology_reverse-proxy --since 5m
Если в логе присутствуют ошибки вида "Cannot load certificate...
" или "Cannot load key...
", то потребуется проверить соответствие названий файлов сертификатов на хосте и в файле reverse-proxy.yml
.
В файле reverse-proxy.yml
необходимо проверить следующее:
в секции services.reverse-proxy
присутствует секция volumes
со следующим содержимым: - /var/lib/visiology/certs:/mnt/volume
;
на сервере расположены файлы сертификата, ключа и пароля (если требуется) в папке /var/lib/visiology/certs
;
имена файлов сертификатов в папке /var/lib/visiology/certs
соответствуют названиям в секции services.reverse-proxy.environment.HTTPS_SECTION_SERVER
. Необходимо сравнить имена файлов (значение после последнего знака /
).
Проблема: не работает один из компонентов платформы.
Платформа настроена для работы по HTTPS и один из ее компонентов не работает (Smart Forms, python-script-service, ViLoader, Grafana, ViQube Admin, ssbi, identity-server, dashboard-service, dashboard-viewer, export-service, script-service, scheduler, migration-service, mail-service, regular-reporting, kerberos-auth-server)
В этом случае, необходимо выполнить следующие шаги:
Проверьте, что сервис reverse-proxy
запущен, выполнив следующую команду:
docker service ls | grep reverse-proxy
Если он не запущен, просмотрите его логи:
docker service logs visiology_reverse-proxy --since 5m
Если в логе присутствуют ошибки вида "Cannot load certificate...
" или "Cannot load key...
", то потребуется проверить соответствие названий файлов сертификатов на хосте и в файле reverse-proxy.yml
.
В файле reverse-proxy.yml
необходимо проверить следующее:
в секции services.reverse-proxy
присутствует секция volumes
со следующим содержимым: - /var/lib/visiology/certs:/mnt/volume
;
на сервере расположены файлы сертификата, ключа и пароля (если требуется) в папке /var/lib/visiology/certs
;
имена файлов сертификатов в папке /var/lib/visiology/certs
соответствуют названиям в секции services.reverse-proxy.environment.HTTPS_SECTION_SERVER
. Необходимо сравнить имена файлов (значение после последнего знака /
).
Также убедитесь, что сертификаты присутствуют в папке /var/lib/visiology/certs
.
Проблема: не открывается Grafana.
Если у вас используется самоподписанный сертификат, то его надо добавить в доверенные в Grafana. Для этого в файле /var/lib/visiology/scripts/v3/monitoring.yml
в секции services.grafana
добавить секцию volumes
:
volumes:
- /var/lib/visiology/certs/certificate.crt:/etc/ssl/certs/proxy.crt:ro
Смотрите также
📄 Разворачивание платформы