В шапке темы указана версия Криптопро 4.0. И путь к архиву linux-amd64_deb.tgz. Ссылки на linux-amd64_deb.tgz нет.
На
https://github.com/fullincome/nginx-gost сказано, что при установленном Криптопро указывать ключ --csp при запуске скрипта нет необходимости.
Подключил репозиторий Криптопро для Debian. Установил КриптоПро 5 (ПЯТЬ).
следующие пакеты:
cprocsp-compat-debian
cprocsp-cpopenssl-110-64
cprocsp-cpopenssl-110-base
cprocsp-cpopenssl-110-devel
cprocsp-cpopenssl-110-gost-64
cprocsp-curl-64
lsb-cprocsp-base
lsb-cprocsp-capilite-64
lsb-cprocsp-kc1-64
lsb-cprocsp-kc2-64
lsb-cprocsp-rdr-64
После запуска скрипта install-certs.sh скачались все зависимости и собрался nginx.
Однако, команда
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine
выдает только
(dynamic) Dynamic engine loading support
ГОСТа нет.
# nginx -V
nginx version: nginx/1.16.1
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
built with OpenSSL 1.1.1g 21 Apr 2020 (running with OpenSSL 1.1.1d 10 Sep 2019)TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=root --group=nginx --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'
Нужный Openssl установлен:
root@srvuapp03:~/cpro# ./install-nginx.sh --command_list
CSP: found
GCC: found
GIT: found
Openssl-1.1.0: found
PCRE: found
ZLIB: found
Nginx: found
root@srvuapp03:/opt/cprocsp/cp-openssl-1.1.0/bin/amd64# ./openssl
OpenSSL> version
OpenSSL 1.1.1g 21 Apr 2020 (Library: OpenSSL 1.1.1d 10 Sep 2019)
root@srvuapp03:/bin# /usr/bin/openssl
OpenSSL> version
OpenSSL 1.1.1d 10 Sep 2019
Где взять архив linux-amd64_deb.tgz с 4 версией?
Update: Снес apt-get remove cprocsp-cpopenssl-110-64
Запустил скрипт:
root@srvuapp03:~/cpro# ./install-nginx.sh --command_list
CSP: found
GCC: found
GIT: found
Openssl-1.1.0: not found (will be installed)
PCRE: found
ZLIB: found
Nginx: not found (will be installed)
Не видит нужного openssl. Но может доустановить.
Запускаю.
root@srvuapp03:~/cpro# ./install-nginx.sh
CSP: found
GCC: found
GIT: found
Openssl-1.1.0: not found (will be installed)
PCRE: found
ZLIB: found
Nginx: not found (will be installed)
Install Openssl-1.1.0
(Чтение базы данных … на данный момент установлен 149091 файл и каталог.)
Подготовка к распаковке cprocsp-cpopenssl-110-base_5.0.11803-6_all.deb …
Распаковывается cprocsp-cpopenssl-110-base (5.0.11803-6) на замену (5.0.11803-6) …
Настраивается пакет cprocsp-cpopenssl-110-base (5.0.11803-6) …
Выбор ранее не выбранного пакета cprocsp-cpopenssl-110-64.
(Чтение базы данных … на данный момент установлен 149091 файл и каталог.)
Подготовка к распаковке cprocsp-cpopenssl-110-64_5.0.11803-6_amd64.deb …
Распаковывается cprocsp-cpopenssl-110-64 (5.0.11803-6) …
Настраивается пакет cprocsp-cpopenssl-110-64 (5.0.11803-6) …
(Чтение базы данных … на данный момент установлено 149108 файлов и каталогов.)
Подготовка к распаковке cprocsp-cpopenssl-110-devel_5.0.11803-6_all.deb …
Распаковывается cprocsp-cpopenssl-110-devel (5.0.11803-6) на замену (5.0.11803-6) …
Настраивается пакет cprocsp-cpopenssl-110-devel (5.0.11803-6) …
Выбор ранее не выбранного пакета cprocsp-cpopenssl-110-gost-64.
(Чтение базы данных … на данный момент установлено 149108 файлов и каталогов.)
Подготовка к распаковке cprocsp-cpopenssl-110-gost-64_5.0.11803-6_amd64.deb …
Распаковывается cprocsp-cpopenssl-110-gost-64 (5.0.11803-6) …
Настраивается пакет cprocsp-cpopenssl-110-gost-64 (5.0.11803-6) …
Apply patch
Nginx: configure and install
checking for OS
+ Linux 4.15.3-2-generic x86_64
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
checking for gcc -pipe switch ... found
...
итог: root@srvuapp03:/opt/cprocsp/cp-openssl-1.1.0/bin/amd64# ./openssl
OpenSSL> version
OpenSSL 1.1.1g 21 Apr 2020
OpenSSL> engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 211453 $)Версии пакетов криптопро в итоге не изменились. Почему потребовалось удалить 1.1.0 и позволить установить ее скрипту (который ее и до этого устанавливал в /opt/cprocsp/cp-openssl-1.1.0) чтобы увидеть gostengy - не знаю.
Изменился и вывод nginx:
root@srvuapp03:/opt/cprocsp/cp-openssl-1.1.0# nginx -V
nginx version: nginx/1.16.1
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
built with OpenSSL 1.1.1g 21 Apr 2020TLS SNI support enabled
Все равно ошибка:
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\srvtest' -provtype 81 -provname "Crypto-Pro GOST R 34.10-2012 KC2 Strong CSP"
Ошибка:
Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2020.
Программа для работы с сертификатами, CRL и хранилищами.
Ошибка GetKeyParam
Неверная функция.
[ErrorCode: 0x20000001]
Может это быть связано с тем, что сохраняю запрос в файл (кодировка base64),
/opt/cprocsp/bin/amd64/cryptcp -creatrqst /root/222.req -provtype 81 -provname 'Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP' -rdn 'CN=srvtest' -cont '\\.\HDIMAGE\srvtest' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca
http://cryptopro.ru/certsrvотправляю в тестовый УЦ Криптопро
https://www.cryptopro.ru/certsrv/certrqxt.asp , не указывая атрибутов. Получаю 2 файла в кодировке base64: certnew.cer, certnew.p7b. В первом сам сертификат, во втором файла сам сертификат и сертификат УЦ.
Затем устанавливаю сертификат УЦ в доверенные корневые ЦС:
/opt/cprocsp/bin/amd64/certmgr -inst -store uroot -file certnew.p7b
и сам сертификат:
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file /root/cpro/certnew.cer -cont '\\.\HDIMAGE\srvtest'
Пробовал игнорировать ошибку GetKeyParam и далее по инструкции выгрузил сертификат и настроил nginx.
В итоге при запуске nginx выдает ошибку:
ноя 20 15:01:48 srvuapp03 nginx[60379]: 15:01:48.264366 support_an_fopen:90 p:60379 t:0x0x76f4cebf8970 support_an_fopen("/var/opt/cprocsp/users/root/policies.ini", "rb") = 0x(nil) fail No such file or directory(2)
ноя 20 15:01:48 srvuapp03 nginx[60379]: 15:01:48.265213 support_an_fopen:90 p:60379 t:0x0x76f4cebf8970 support_an_fopen("/var/opt/cprocsp/users/root/policies.ini", "rb") = 0x(nil) fail No such file or directory(2)
ноя 20 15:01:48 srvuapp03 nginx[60379]: <cpcsp>CompleteUserKey!kcar_get_material_with_public fail
ноя 20 15:01:48 srvuapp03 nginx[60379]: <capi10>CryptExportKey!failed: LastError = 0x8009000B
ноя 20 15:01:48 srvuapp03 nginx[60379]: Type password:nginx: [emerg] cannot load certificate key "engine:gostengy:srvtest": ENGINE_load_private_key() failed (SSL: error:80016033:lib(128):gng_support_getuserkey:GNG_ERR_PIN error:26096080:
ноя 20 15:01:48 srvuapp03 nginx[60379]: nginx: configuration file /etc/nginx/nginx.conf test failed
ноя 20 15:01:48 srvuapp03 nginx[60379]: Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP requests password
ноя 20 15:01:48 srvuapp03 systemd[1]: nginx.service: Control process exited, code=exited status=1
ноя 20 15:01:48 srvuapp03 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Файл /var/opt/cprocsp/users/root/policies.ini отсутствует. Что должно быть в нем?
Отредактировано пользователем 20 ноября 2020 г. 13:12:08(UTC)
| Причина: Не указана