# Установка SSL-сертификатов

Эта страница описывает, как первоначально установить SSL-сертификат и перевести ваш веб-сайт на использование HTTPS. Если вы уже используете SSL-сертификат и он истёк, обратитесь к [Обновление](/docs/on-premise/ru/on-premise/how-to-guide/configuration/ssl-certificates/ssl-certificates-update.md) странице.

Платформа Navixy использует [Nginx](/docs/on-premise/ru/on-premise/how-to-guide/configuration/nginx-web-server.md) в качестве веб-сервера. Он совместим как с Linux, так и с Windows, поэтому приведённые ниже шаги применимы к любой операционной системе.

## Шаг 1. Подготовьте SSL-сертификаты

Для обеспечения SSL-защиты вашего веб-сайта вам понадобится SSL-сертификат и соответствующий ему приватный ключ. Если у вашего сайта несколько имён доменов, вам потребуется сертификат для каждого домена или многодоменный (SAN) либо wildcard-сертификат.

{% hint style="danger" %}
Для корректной работы веб-сервера важно иметь не только SSL-сертификат, но и файл приватного ключа, который ему соответствует. Без правильного приватного ключа веб-сервер не сможет запуститься. Как правило, и сертификат, и приватный ключ предоставляет ваш центр сертификации.
{% endhint %}

Чтобы получить сертификат, вы можете обратиться в любой центр сертификации. Платформа поддерживает действительные сертификаты от любого издателя. Для получения дополнительных сведений об SSL-защите обратитесь к этой странице: [Шифрование SSL](/docs/on-premise/ru/on-premise/how-to-guide/requirements/ssl-encryption.md).

### Цепочка доверия

Чтобы ваш SSL-сертификат работал корректно, он должен включать полную цепочку доверия. Это означает, что в файле(ах) сертификата должны содержаться не только основной сертификат, но также любые промежуточные и корневые сертификаты, необходимые для установления цепочки доверия с издателем сертификата. Такие сертификаты называются сертификатами с полной цепочкой (full chain).

Важно убедиться, что получаемый вами сертификат включает полную цепочку, так как некоторые функции, например мобильные приложения, могут некорректно работать без неё. Если у вас возникнут трудности со сборкой полной цепочки, вы можете обратиться к издателю сертификата за помощью или использовать онлайн-инструменты, такие как этот, для решения проблем с цепочкой доверия. Дополнительную информацию о цепочке доверия можно получить в объяснении, предоставленном издателем SSL.

{% hint style="info" %}

* [Как работают цепочки сертификатов](https://knowledge.digicert.com/solution/SO16297.html)
* [Решатель цепочек SSL-сертификатов](https://www.leaderssl.com/tools/cert_chain_resolver)
  {% endhint %}

### Требование приватного ключа

Чтобы веб-сервер Nginx корректно запускался, приватный ключ должен соответствовать SSL-сертификату. Как правило, издатель сертификата предоставляет приватный ключ вместе с сертификатом. Если вы переиздаёте сертификат в том же центре сертификации, приватный ключ часто остаётся прежним и его не нужно заменять.

{% hint style="info" %}

* [Инструмент для подтверждения соответствия сертификата приватному ключу](https://www.sslshopper.com/certificate-key-matcher.html)
  {% endhint %}

## Шаг 2. Установите SSL-сертификаты

### Автоматическая настройка SSL с LetsEncrypt

Если ваша платформа была установлена автоматически (см. [Автоматическая установка](/docs/on-premise/ru/on-premise/how-to-guide/installation/advanced-installation.md)), вы можете установить бесплатные сертификаты LetsEncrypt с помощью [Мастера настройки](/docs/on-premise/ru/on-premise/how-to-guide/installation/advanced-installation/ubuntu-20/configuration-wizard.md).

### Ручная настройка SSL с любыми сертификатами

Чтобы вручную установить SSL-сертификаты на сервере, начните с получения файлов сертификата и приватного ключа. Их можно получить в любом центре сертификации. После получения файлов поместите их в каталог на вашем сервере. Рекомендуется использовать стандартные пути, которые находятся `/etc/nginx/ssl/` для Linux и `C:\nginx\conf\ssl\` для Windows.

После размещения файлов в соответствующем каталоге вы можете указать путь к сертификату и приватному ключу в конфигурации вашего веб-сайта. Рекомендуется использовать короткие пути, например `ssl/name.crt` и `ssl/name.key`. Используя эти стандартные пути, вам не придётся указывать полный путь к сертификату и приватному ключу в конфигурации сайта.

## Шаг 3. Обновите конфигурацию

### Обновите конфигурацию Nginx

Найдите файл конфигурации вашего веб-сайта. Обычно он называется **navixy.conf** и находится по пути `/etc/nginx/sites-available/` (Linux) или `C:\nginx\sites-enabled\` (Windows).

{% hint style="info" %}
Рекомендуется использовать готовые конфигурации Nginx, представленные на странице [Nginx](/docs/on-premise/ru/on-premise/how-to-guide/configuration/nginx-web-server.md) Просто выберите конфигурацию HTTPS, соответствующую вашей операционной системе и количеству доменов, и замените текущее содержимое navixy.conf на неё. Затем вам нужно только указать домены и пути к сертификатам и приватным ключам. Это поможет избежать возможных ошибок, поскольку остальная часть конфигурации уже проверена в работе. Тем не менее, при необходимости вы также можете редактировать конфигурацию Nginx вручную.
{% endhint %}

Измените порт прослушивания с "80" на "443 ssl" и добавьте строки, связанные с SSL, в конфигурацию каждого сайта, указав правильные пути к файлам fullchain-сертификата и ключа.

```sql
listen 443 ssl; ## слушать на ipv4
ssl_certificate /ssl/certificate.crt;
ssl_certificate_key /ssl/private.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
```

Ниже приведён пример конфигурации для API-сайта:

```sql
server {
listen 443 ssl; ## слушать на 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** from `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 (см. [Перезапуск инстанса](/docs/on-premise/ru/on-premise/how-to-guide/maintenance/restarting-instance.md)) чтобы все изменения вступили в силу. Если страница по-прежнему загружается по HTTP, попробуйте очистить кэш браузера.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://navixy.com/docs/on-premise/ru/on-premise/how-to-guide/configuration/ssl-certificates/ssl-certificates-installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
