# 11.7. Настройка HTTPS

По умолчанию скрипт **install.sh** выполняет установку для локального сервера **localhost**. Чтобы включить удаленный доступ к серверу, необходимо внести некоторые изменения в конфигурационные файлы веб-сервера [**Nginx**](http://nginx.org/ru/), управляющие системой [**JetCalc**](https://jetcalc.leossnet.ru).

Для начала нужно загрузить на сервер ранее приобретенный SSL-сертификат с помощью Windows-программы [**WinSCP**](https://winscp.net/eng/docs/lang:ru), которая позволяет подключаться к удаленному серверу и обмениваться файлами между сервером и локальным компьютером:

![](/files/-Lbn4K9fRdfuUxdMmqKS)

В правой панели [**WinSCP**](https://winscp.net/eng/docs/lang:ru) необходимо перейти в каталог **/etc/nginx**, в котором создать папку **/ssl**. В папку **/etc/nginx/ssl** нужно скопировать с локального компьютера ранее полученные файлы SSL-сертификата, например **mysite\_ru.crt** и **mysite\_ru.key**.

Затем нужно выполнить ряд настроек [**Nginx**](http://nginx.org/ru/), для чего войти на сервер, запустить [**Midnight Commander**](https://midnight-commander.org/), перейти в каталог **/etc/nginx/sites-available** и открыть для редактирования файл **jetcalc.conf**. В этом файле необходимо изменить только первые строки, необходимые для замены локального сервера **localhost** на удаленный сервер **mysite.ru** и подключения SSL-сертификата, ранее размещенного в каталоге **/ssl**.

а) исходный вариант файла **jetcalc.conf**:

```
server {
    listen 80;
    server_name localhost;
    client_max_body_size 100m;

    gzip  on;    
    ...
}
```

б) отредактированный вариант файла **jetcalc.conf**:

```
server {
    listen 443 ssl default_server;
    server_name www.mysite.ru mysite.ru;
    client_max_body_size 100m;

    ssl on;
    ssl_certificate ssl/mysity_ru.crt;
    ssl_certificate_key ssl/mysite_ru.key;

    gzip  on;
    ...
}
```

Для включения сделанных изменений необходимо выполнить следующую команду:

```
nginx -s reload
```

Теперь при вводе в строку браузера адреса <https://www.mysite.ru> откроется окно входа в JetCalc. Но чтобы всякий раз не вводить перед названием сайта **https\://**, что означает работу по зашифрованному каналу связи, необходимо настроить переадресацию открытого протокола **http** на протокол **httsp**. Для этого в ранее настраиваемом файле **jetcalc.conf** необходимо добавить следующие инструкции:

```
server {
    listen 80;
    server_name www.mysite.ru mysite.ru;
    return 301 https://www.mysite.ru$request_uri;
}
server {
    listen 443 ssl default_server;
    server_name www.mysite.ru mysite.ru;
    client_max_body_size 100m;

    ssl on;
    ssl_certificate ssl/mysite_ru.crt;
    ssl_certificate_key ssl/mysite_ru.key;

    gzip  on;
    ...
}
```

После сохранения сделанных изменений опять вызываем команду:

```
nginx -s reload
```

При вызове команды **nginx -s reload** может выйти сообщение:

```
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
```

Для исправления ситуации необходимо в файле **/etc/nginx/nginx.conf** найти и снять комментарий (удалить символ **#**) у следующего параметра:

```
server_names_hash_bucket_size 64;
```

После сделанных изменений следующая команда должна отработать без ошибок:

```
nginx -s reload
```

После завершения всех настроек при вводе в адресную строку браузера **mysite.ru** откроется окно ввода логина и пароля [**JetCalc**](https://jetcalc.leossnet.ru) в виде [https://mysite.ru](https://mysity.ru).


---

# 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://leossnet.gitbook.io/jetcalc/ustanovka-sisteme-na-oblachnom-hostinge/nastroika-https.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.
