NGinx + GOST с самоподписными сертификатами
Устанавливаем модуль ГОСТ
Устанавливаем модуль ГОСТ
sudo apt install libengine-gost-openssl1.1
Редактируем конфигурационный файл openssl
sudo nano /etc/ssl/openssl.cnf
Добавляем в начало файла
openssl_conf = openssl_def
В конец
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
dynamic_path = /usr/lib/x86_64-linux-gnu/engines-1.1/gost.so
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
Далее проверяем, что конфигурация работает (вывод должен быть не пустым)
openssl ciphers | tr ':' '\n' | grep GOST
Создаем корневой сертификат
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:B -out ca.key
Создаем сертификат на год
openssl req -new -x509 -md_gost12_256 -days 365 -key ca.key -out ca.cer
Создаем закрытый ключ ГОСТ
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out example.itsouls.ru.key
Создаем запрос
openssl req -new -md_gost12_256 -key example.itsouls.ru.key -out example.itsouls.ru.csr
Подписываем запрос через самоподписной сертификат
openssl x509 -req -in example.itsouls.ru.csr -CA ca.cer -CAkey ca.key -CAcreateserial -out example.itsouls.ru.cer -days 5000
Далее устанавливаем NGinx и создаем каталог для сертификатов
sudo apt install nginx
sudo mkdir /etc/nginx/ssl
sudo cp example.itsouls.ru.cer /etc/nginx/ssl/
sudo cp example.itsouls.ru.key /etc/nginx/ssl/
Далее создаем файл конфигурации NGinx
sudo nano /etc/nginx/sites-available/gost
И добавляем в него следующее
server {
server_name example.itsouls.ru;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/example.itsouls.ru.cer;
ssl_certificate_key /etc/nginx/ssl/example.itsouls.ru.key;
ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://example.com;
}
}
Далее активируем конфигурацию и перезагружаем NGinx
sudo ln -s /etc/nginx/sites-available/gost /etc/nginx/sites-enabled/
sudo systemctl restart nginx
Для подключения вам нужен chromium-gost вместе с CryptoPro-CSP 5, в котором нужно добавить ca.cer в "Доверенные корневые центры сертификации" кнопкой установить сертификаты
