Изменения

Настройка ГОСТ-TLS через КриптоПро

119 байтов добавлено, 16:01, 30 ноября 2017
Нет описания правки
# ГОСТ сертификат
ssl_certificate /etc/nginx/ssl-gost.pem;
# "Иванов" - первое слово (без пробелов) имени сертификата (поля CN) (да, можно и так извратиться)
ssl_certificate_key engine:gost_capi:Иванов;
# RSA сертификат
==== Ошибки ====
В случае, если первый s_client (RSA) выводит строки «no peer certificate available» и «New, (NONE), Cipher is (NONE)» — следует проверить наличие в конфигурации nginx (<tt>/etc/nginx/nginx.conf</tt>, <tt>/etc/nginx/conf.d/tms*.conf</tt> ) строк ssl_certificate и ssl_certificate_key с RSA-сертификатом и ключом.
В случае, если первый s_client (RSA) отрабатывает и выводит приглашение ко вводу, а второй (ГОСТ) выводит детали соединения и шифр GOST2001-GOST89-GOST89, но после этого сразу выходит в терминал — следует проверить права на файл <tt>/var/opt/cprocsp/tmp/openssl.log</tt> — владельцем файла должен быть пользователь <tt>nginx</tt>, а права должны стоять 644 (см. выше команду по смене владельца chown). Несмотря на то, что КриптоПро в инструкции по установке требует запускать nginx именно под пользователем root, наличия прав доступа к <tt>openssl.log</tt> должно быть достаточно для выполнения nginx под пользователем nginx.
Если права корректны, но ГОСТ s_client всё равно сразу выходит в терминал — следует поменять {{cmd|user nginx;}} на {{cmd|user root;}} в <tt>/etc/nginx/nginx.conf</tt>, перезапустить nginx и проверить s_client ещё раз.
Если и после этого ГОСТ s_client сразу выходит в терминал — можно проверить, введена прописана ли на сервере актуальная лицензия КриптоПро командой: {{cmd|/opt/cprocsp/sbin/amd64/cpconfig -license -view}}. Если лицензия невалидна, в выводе будет «the license is expired or not yet valid», а сервер тихо откажется работать. Также при этом в syslog/journalctl будут сообщения о невалидности лицензии от cryptsrv. Устанавливается лицензия командой {{cmd|/opt/cprocsp/sbin/amd64/cpconfig -license -set <КЛЮЧ>}}.
==== Некритичные ошибки ====