logo
Как обновить сертификат для выгрузки реестра
  1. Запускаем панель управления рутокена, проверяем, что сертификат виден без ошибок (дефолтный пароль рутокена 12345678)
  2. Если сертификат виден, то с помощью КриптоПро экспортируем его в хранилище
  3. Если сертификат не виден, то обновляем драйвера рутокена и КриптоПро
  4. C помощью программы P12FromGostCSP.zip экспортируем в pkcs12 (p12.pfx)
  5. Проверяем наличие шифрования ГОСТ-2012
    openssl ciphers | tr ":" "\n" | grep GOST
    GOST2012256-GOST89-GOST89
    GOST2001-GOST89-GOST89
  6. Проверяем наличие контейнеров и отсутствие ошибок
    openssl pkcs12 -in p12.pfx -nodes -info
  7. Конвертируем полученный pkcs12 в pem
    openssl pkcs12 -in p12.pfx -out p12.pem -nodes -clcerts
    (при возникновении ошибки Mac verify error: invalid password? добавляем ключ -nomacver)
  8. Подписываем запрос request.xml c помощью p12.pem
    openssl smime -sign -in request.xml -out request.xml.sign -signer p12.pem -outform DER
  9. Проверяем полученный результат на сайте РКН, загрузив туда запрос и подпись
  10. При положительном результате переносим подпись в /opt/scripts/vigruzki/ предварительно сохранив забэкапив предыдущую подпись
  11. Проверяем работу скрипта
    /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/
  12. Копируем сертификат p12.pem в /opt/scripts/vigruzka/ для того, чтоб погас триггер
  13. 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/