Как обновить сертификат для выгрузки реестра
- Запускаем панель управления рутокена, проверяем, что сертификат виден без ошибок (дефолтный пароль рутокена 12345678)
- Если сертификат виден, то с помощью КриптоПро экспортируем его в хранилище
- Если сертификат не виден, то обновляем драйвера рутокена и КриптоПро
- C помощью программы P12FromGostCSP.zip экспортируем в pkcs12 (p12.pfx)
- Проверяем наличие шифрования ГОСТ-2012
openssl ciphers | tr ":" "\n" | grep GOST
GOST2012256-GOST89-GOST89
GOST2001-GOST89-GOST89
- Проверяем наличие контейнеров и отсутствие ошибок
openssl pkcs12 -in p12.pfx -nodes -info
- Конвертируем полученный pkcs12 в pem
openssl pkcs12 -in p12.pfx -out p12.pem -nodes -clcerts
(при возникновении ошибки Mac verify error: invalid password? добавляем ключ -nomacver)
- Подписываем запрос request.xml c помощью p12.pem
openssl smime -sign -in request.xml -out request.xml.sign -signer p12.pem -outform DER
- Проверяем полученный результат на сайте РКН, загрузив туда запрос и подпись
- При положительном результате переносим подпись в /opt/scripts/vigruzki/ предварительно сохранив забэкапив предыдущую подпись
- Проверяем работу скрипта
/opt/scripts/vigruzka/zapret_checker.py -r /opt/scripts/vigruzka/request.xml -s /opt/scripts/vigruzka/request.xml.sign -l /opt/scripts/vigruzka/request.log -d /var/backup/vigruzka/
- Копируем сертификат p12.pem в /opt/scripts/vigruzka/ для того, чтоб погас триггер
- Profit!
NOTE: с 2018г делал все операции с openssl на макбуке из-за проблем с наличием ГОСТ-2012
NOTE: since 2022 is a new method
put the certificates and get-cpcert to ~/cert/
docker run -v ~/cert:/tmp/cert/ --rm -it rnix/openssl-gost:latest
./get-cpcert ./cert >cert.pem
then go to point 8 and run it in the docker (!)
scp -P 1221 request.xml.sign sannikov@plus-internet.ru:/opt/scripts/vigruzka/
get_cpcert.zip is here
instruction is here
https://zabbix.plus-internet.ru/test/