Платформа Navixy использует веб-сервер под названием Nginx. Он доступен как для Linux, так и для Windows, поэтому следующие шаги актуальны для любой операционной системы.
Подготовка SSL-сертификата
Для того чтобы ваш сайт имел SSL-защиту, вам необходимо иметь SSL-сертификат и закрытый ключ к нему. Если вы используете несколько доменных имен, вам нужен сертификат для каждого домена, либо wildcard-сертификат, либо мультидоменный сертификат. Вы можете обратиться в любой удостоверяющий центр для приобретения сертификата. Платформа может работать с любыми действующими сертификатами, независимо от их эмитента. Дополнительную информацию о защите SSL см. на этой странице.
Если у вас уже есть файлы сертификатов и закрытых ключей, вам нужно разместить их где-либо на вашем сервере. Рекомендуется использовать стандартные пути:
- Linux:
/etc/nginx/ssl/
- Windows:
C:\nginx\conf\ssl\
В этом случае вам не нужно будет указывать полный путь к сертификату и закрытому ключу в конфигурации вашего сайта. Вы можете указать короткие пути: ssl/name.crt
и ssl/name.key
.
Цепочка доверия SSL-сертификата
Файл сертификата должен содержать полную цепочку доверия. Это означает, что содержимое файла должно включать не только основной сертификат, который вы планируете установить, но и промежуточный сертификат, корневой сертификат или любую их комбинацию. Состав цепочки доверия определяется эмитентом сертификата.
Такой сертификат называется сертификатом с полной цепочкой (fullchain-сертификатом).
Убедитесь, что выпускаемый вами сертификат содержит цепочку доверия, иначе некоторые функции, например, мобильные приложения, могут работать некорректно.
Если у вас возникли проблемы с построением полной цепочки, обратитесь в удостоверяющий центр, выпустивший сертификат. Вы также можете использовать для построения цепочки доверия какие-либо онлайн-инструменты, к примеру вот этот.
Если вы хотите узнать больше о цепочке доверия, вы можете прочитать объяснение на сайте одной из компаний-эмитентов SSL.
Требование к закрытому ключу
Основное требование к закрытому ключу - он должен соответствовать SSL-сертификату, иначе веб-сервер Nginx не сможет запуститься. Как правило, закрытый ключ предоставляется удостоверяющим центром вместе с сертификатом. Если вы повторно выпускаете сертификат в том же УЦ, закрытый ключ зачастую остается прежним и не требует замены.
Вы можете дополнительно убедиться в соответствии сертификата закрытому ключу с помощью онлайн-инструментов, таких как этот.
Обновление конфигурации Nginx
Найдите файл конфигурации вашего сайта. Как правило, он называется navixy.conf и находится в директории /etc/nginx/sites-available/
(Linux) или C:\nginx\sites-enabled\
(Windows).
Настоятельно рекомендуется использовать готовую конфигурацию Nginx. Просто выберите одну из конфигураций HTTPS в соответствии с вашей операционной системой и количеством доменов, и замените текущее содержимое файла navixy.conf. В этом случае вам нужно указать только домены, а также пути к сертификатам и закрытым ключам. Остальная часть конфигурации заведомо работоспособна, так что этот способ позволит вам избежать возможных ошибок.
Впрочем, вы можете отредактировать конфигурацию Nginx вручную, если это необходимо.
Измените порт прослушивания с "80" на "443 ssl" и добавьте строки, связанные с SSL, в конфигурацию каждого сайта, указав правильный путь к файлам сертификата и закрытого ключа.
listen 443 ssl; ## listen for ipv4
ssl_certificate /ssl/certificate.crt;
ssl_certificate_key /ssl/private.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Пример конфигурации сайта API:
server {
listen 443 ssl; ## listen for ipv4
server_name api.domain.com;
access_log /var/log/nginx/api.domain.com_ssl.access.log;
client_max_body_size 20m;
ssl_certificate /ssl/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {proxy_pass http://127.0.0.1:8084;
}
}
Перезапустите веб-сервер Nginx.
На Linux это можно сделать при помощи следующей команды:
nginx -t && nginx -s reload
Для Windows необходимо завершить все процессы Nginx, а затем запустить nginx.exe из папки C:\nginx
.
Убедитесь, что Nginx запустился и не выдает никаких ошибок, связанных с SSL.
Файлы конфигурации платформы
Далее нам нужно указать Navixy использовать протокол HTTPS вместо HTTP во всех конфигурационных файлах. Откройте следующие файлы:
/var/www/panel-v2/PConfig.js
- отредактируйте параметр "apiRoot", изменив "http" на "https". Отредактируйте параметр "terminalHost" - измените "ws" на "wss" и удалите порт 8383./var/www/pro-ui/Config.js
- отредактируйте параметр "apiRoot", изменив "http" на "https"./var/www/pro-ui/static/app_config.js
- отредактируйте параметр "apiUrl", изменив "http" на "https" (если значение присутствует)./home/java/api-server/conf/config.properties
- отредактируйте параметр api.externalBaseUrl, изменив "http" на "https" (если значение присутствует).
Перезапустите службы Navixy, чтобы все изменения вступили в силу.
Если страница все еще пытается загрузиться по протоколу HTTP, очистите кэш браузера.