Skip to content

Instantly share code, notes, and snippets.

@Barolina
Last active March 24, 2025 16:35
Show Gist options
  • Save Barolina/9c2a36e0e7de365974b168f40e6540a3 to your computer and use it in GitHub Desktop.
Save Barolina/9c2a36e0e7de365974b168f40e6540a3 to your computer and use it in GitHub Desktop.
Linux cryptopro5 подпись файлов и установка

Чуть-чуть об установке

  1. что б каждый раз не вводить полный путь до команд крипто
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
  1. так как, выше описная команда измениет переменную PATH тольк на время сесии, это можно исправить так: меняем PATH

  2. если во время установки, к примеру от пользователя www-data, произошла ошибка во время установке pfx, убедитесь, что

  • пользователь есть владелец данной ЭЦП
  • имеет доступ к директории, где лежит ЭЦП
  • если выше два пункта не помогли, попробуйте удалить установленные контейнеры для данного пользователя по пути
  /var/opt/cprocsp/keys/{пользователь}/{контейнер}/

Подпись файла

если сертификат установлен один, то можно подписывать без указания -sign

cryptcp -sign -thumbprint 52eeca8317ffc76c1e9c8c01a837776c36523abd -detach -der "scr.txt" "src.txt.sig" -nochain -norev

Подпись файла с передачей пароля

cryptcp -sign -thumbprint 52eeca8317ffc76c1e9c8c01a837776c36523abd -detach -der "scr.txt" "src.txt.sig" -nochain -norev  -pin 1111

Получить список установленных сертифкатов

certmgr -list

Удалить сертифкат

 certmgr -delete -thumbprint cd321b87fdabb503829f88db68d893b59a7c5dd3

Проверка подписи

 cryptcp -verify -detach -thumbprint 6f601349d9dd1860dd158ca0cc8ff4b377ae87e0 --file 1.txt 1.txt.sig
 

Получаем хеш полученной подписи

certmgr -list -f 1.txt.sig | grep 'SHA1 Hash'

Установка сертифката без закрытого ключа

certmgr -inst -file file.crt

Установка ЭЦП ручной способ

# копируем  
cp -R /path/to/key/999996.000 /var/opt/cprocsp/keys/<username>/
# даем  парва
chmod 600 /var/opt/cprocsp/keys/<username>/999996.000/*
 
# можно сразу установить личные сертификатов из всех доступных контейнеров одной командой: 
/opt/cprocsp/bin/amd64/csptestf -absorb -certs

# смотрим
certmgr -list

Получить тестовое ЭЦП от крипто

Установка ЭЦП в формтае PFX

 # важна  установка  от  sudo и с  полным путем  
 
 sudo /opt/cprocsp/bin/amd64/certmgr -inst  -pfx -pin 1 -file cert_em.pfx
 
 # или 
 
 sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mmy -pfx -pin пин-код -file ~/file.pfx
 
 # ~/file.pfx - полный путь к pfx-файлу.
 
 # и затем  для установки  сертифкатов  из контенеров 
 
 sudo /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
 
 # если  сертификат не появился, проверяем  парва на контенйер  в  диретокри 
 
 /var/opt/cprocsp/keys/{пользователь}/{контейнер}/
 

Установка ЭЦП для пользователя www-data

 sudo -u www-data /opt/cprocsp/bin/amd64/certmgr -install -store my -file cert_em.pfx -pfx -pin 1
 

Получени даны окончания сертифката из подписи файла

 # указать в качестве хранилища сертификатов само сообщение (ключ -f): 
 /opt/cprocsp/bin/amd64/cryptcp -verify -f raport.pdf.sig -detached raport.pdf raport.pdf.sig 
 
 CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, [email protected]
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02

Цепочки сертификатов проверены.
Папка './': raport.pdf...
Проверка подписи..

Автор подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, [email protected]
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02

 Подпись проверена.
[ErrorCode: 0x00000000]

Ссылки

Работа с КриптоПро CSP на AstraLinux

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment