Конфигурация OpenSSL и системный профиль ГОСТ¶
В НАЙС.ОС ГОСТ подключается к системному OpenSSL. Администратор может использовать системный профиль для обычных команд, создать независимую конфигурацию для отдельного процесса или переключить криптографический профиль установленным системным инструментом.
Изучить текущую конфигурацию¶
openssl version -a
openssl version -d -e -m
openssl engine -t -c gost
openssl list -providers
find /etc/ssl -maxdepth 2 -type f -name '*gost*.cnf' -o -name 'distro.cnf'
Сначала определите системный каталог OpenSSL и список активных модулей. Для выявления переменных среды:
printf 'OPENSSL_CONF=%s\n' "${OPENSSL_CONF:-<системная конфигурация>}"
printf 'OPENSSL_MODULES=%s\n' "${OPENSSL_MODULES:-<автоматический поиск>}"
printf 'OPENSSL_ENGINES=%s\n' "${OPENSSL_ENGINES:-<автоматический поиск>}"
Изолированный профиль ENGINE¶
Ниже создаётся пользовательский конфигурационный файл — системные /etc/ssl/*.cnf не изменяются:
mkdir -p "$HOME/gost-lab"
cat > "$HOME/gost-lab/engine.cnf" <<'EOF'
openssl_conf = openssl_init
[openssl_init]
engines = engines
[engines]
gost = gost_section
[gost_section]
engine_id = gost
default_algorithms = ALL
EOF
OPENSSL_CONF="$HOME/gost-lab/engine.cnf" \
openssl engine -t -c gost
Если модуль не находится автоматически, сначала узнайте каталог:
И затем задайте корректный OPENSSL_ENGINES для этого процесса, например:
# ENGDIR берётся из 'openssl version -e' или полного пути к gost.so.
OPENSSL_ENGINES="$ENGDIR" \
OPENSSL_CONF="$HOME/gost-lab/engine.cnf" \
openssl engine -t -c gost
Изолированный профиль Provider¶
cat > "$HOME/gost-lab/provider.cnf" <<'EOF'
openssl_conf = openssl_init
[openssl_init]
providers = provider_section
[provider_section]
default = default_section
gostprov = gost_section
[default_section]
activate = 1
[gost_section]
activate = 1
EOF
OPENSSL_CONF="$HOME/gost-lab/provider.cnf" \
openssl list -providers -verbose
Если требуется указать путь к модулю, используйте OPENSSL_MODULES с каталогом, содержащим gostprov.so:
openssl version -m
rpm -ql openssl-gost-engine | grep '/gostprov.so$'
OPENSSL_MODULES="$MODULESDIR" \
OPENSSL_CONF="$HOME/gost-lab/provider.cnf" \
openssl list -providers -verbose
Системный переключатель¶
В НАЙС.ОС предусмотрен openssl-switch-gost.sh, меняющий системный набор включаемых конфигураций OpenSSL:
При централизованном администрировании сначала сохраните /etc/ssl/distro.cnf и запланируйте повторную проверку всех зависимых служб. Для работы над одной задачей предпочтительнее OPENSSL_CONF, который не влияет на другие процессы.
Конфигурация systemd-службы¶
Вместо изменения профиля для всего сервера можно прописать путь в отдельной службе через drop-in:
Путь должен существовать и быть читаемым от имени пользователя службы. После изменения:
sudo systemctl daemon-reload
sudo systemctl restart myapp.service
sudo systemctl show myapp.service -p Environment
myapp.service — имя вашей службы, не системная служба НАЙС.ОС. Изменение рабочих сервисов выполняйте после проверки на тестовом окружении.
Контроль результата¶
openssl engine -t -c gost
openssl list -digest-algorithms | grep -i gost
openssl list -cipher-algorithms | grep -Ei 'kuznyechik|magma|gost'
Далее: Engine и Provider, управляющие параметры, неполадки.