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

По умолчанию скрипт install.sh выполняет установку для локального сервера localhost. Чтобы включить удаленный доступ к серверу, необходимо внести некоторые изменения в конфигурационные файлы веб-сервера Nginx, управляющие системой JetCalc.

Для начала нужно загрузить на сервер ранее приобретенный SSL-сертификат с помощью Windows-программы WinSCP, которая позволяет подключаться к удаленному серверу и обмениваться файлами между сервером и локальным компьютером:

В правой панели WinSCP необходимо перейти в каталог /etc/nginx, в котором создать папку /ssl. В папку /etc/nginx/ssl нужно скопировать с локального компьютера ранее полученные файлы SSL-сертификата, например mysite_ru.crt и mysite_ru.key.

Затем нужно выполнить ряд настроек Nginx, для чего войти на сервер, запустить Midnight Commander, перейти в каталог /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://mysite.ru.

Last updated