Автор: Андрей * 
Автор: UncleVic 
А вообще, контейнер - это что? Какой у него смысл?
хранилище ключей, доп.параметров, сертификат
Туда типа сохраняется все то, что получено извне? Сертификаты и т.п.?
Автор: Андрей * 
certmgr -list -store mroot - чем обоснован выбор корневого хранилища?
Андрей, вы не поняли, я его не выбирал. Я узнал про это имя из каких-то сообщений на форуме и из докер-файла создания приложения которое мне досталось.
Вот этот код, что я в первом сообщении дал. Это не я его писал
Код:
certmgr -install -store mRoot -file ./cert/root.p7b -all && \
certmgr -install -store mRoot -file ./cert/rootca.cer && \
certmgr -install -store mCa -file ./cert/subca.cer && \
certmgr -install -store mAddressBook -file ./cert/opertsp.cer && \
update-ca-certificates
Я вычитал, что по умолчанию сертификаты устанавливаются в стор uMy. Типа u - это для пользователя, m - это системный. Я не знаю почему предыдущий программист устанавливал сертификаты именно туда. Я не знаю почему я зациклился именно на mroot и uroot, но выбыли правы, сейчас у меня в uMy вот это
❯ certmgr -list -store umy
Certmgr Ver:5.0.13000 OS:Linux CPU:AMD64 (c) "Crypto-Pro", 2007-2024.
Program for managing certificates, CRLs and stores.
=============================================================================
1-------
Issuer : ОГРН=1234567890123, ИНН=001234567890, STREET=ул. Сущёвский вал д. 18, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN="Тестовый УЦ ООО ""КРИПТО-ПРО"""
Subject : CN=ООО Оператор, S=77 г. Москва, O=ООО Оператор, ИНН ЮЛ=1234567890, C=RU
Serial : 0x7C001DB27E6DD890A5C52C4BE6000D001DB27E
SHA1 Thumbprint : 3539185e5b1123ba0488198c42c039dc50700edc
SubjectKeyID : e7b50fdd08ece980fc6b6c13257f15712d139d3b
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 04/04/2025 18:50:24 UTC
Not valid after : 04/06/2025 19:00:24 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\test2-20.000\D44E
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : Provider Type: 80, Key Spec: 1, Flags: 0x0
OCSP URL :
http://testgost2012.cryp...ro.ru/ocsp2012g/ocsp.srfOCSP URL :
http://testgost2012.cryp....ru/ocsp2012gst/ocsp.srfCA cert URL :
http://testgost2012.cryp...oll/testgost2012(13).crtCA cert URL :
http://testgost2012.cryp.../CertEnroll/testroot.p7bCDP :
http://testgost2012.cryptopro.ru/CertEnroll/!0422!0435!0441!0442!043e!0432!044b!0439%20!0423!0426%20!041e!041e!041e%20!0022!041a!0420!0418!041f!0422!041e-!041f!0420!041e!0022(13).crl
CDP :
http://testgost2012.cryp...oll/testgost2012(13).crl2-------
Issuer : ОГРН=1234567890123, ИНН=001234567890, STREET=ул. Сущёвский вал д. 18, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN="Тестовый УЦ ООО ""КРИПТО-ПРО"""
Subject : CN=ООО Тест, S=77 г. Москва, L=Москва, STREET="ул. Тестовая, д.1", O=ООО Тест, SN=Иванов, G=Иван Иванович, ИНН=123456789012, ИНН ЮЛ=1234567890, СНИЛС=12345678901, ОГРН=1234567890123, T=Тестировщик, C=RU
Serial : 0x7C001D9365FC00CD0023716660000C001D9365
SHA1 Thumbprint : 048d155bad60bd732e86fe8cb707c18e7f0b164f
SubjectKeyID : f224197517e4f806c50e2947b3b12d6608c1a1ae
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 01/04/2025 19:53:43 UTC
Not valid after : 04/05/2025 05:24:41 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\20250402.001\3DBC
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : Provider Type: 80, Key Spec: 1, Flags: 0x0
OCSP URL :
http://testgost2012.cryp...ro.ru/ocsp2012g/ocsp.srfOCSP URL :
http://testgost2012.cryp....ru/ocsp2012gst/ocsp.srfCA cert URL :
http://testgost2012.cryp...oll/testgost2012(12).crtCA cert URL :
http://testgost2012.cryp.../CertEnroll/testroot.p7bCDP :
http://testgost2012.cryptopro.ru/CertEnroll/!0422!0435!0441!0442!043e!0432!044b!0439%20!0423!0426%20!041e!041e!041e%20!0022!041a!0420!0418!041f!0422!041e-!041f!0420!041e!0022(12).crl
CDP :
http://testgost2012.cryp...oll/testgost2012(12).crlExtended Key Usage : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
1.3.6.1.5.5.7.3.4 Защищенная электронная почта
3-------
Issuer : ОГРН=1234567890123, ИНН=001234567890, STREET=ул. Сущёвский вал д. 18, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN="Тестовый УЦ ООО ""КРИПТО-ПРО"""
Subject : CN=ООО Оператор, S=77 г. Москва, O=ООО Оператор, ИНН ЮЛ=1234567890, C=RU
Serial : 0x7C001DB0563A7A0A60FFAB4300000D001DB056
SHA1 Thumbprint : d92a1c6c27f37a52ca69c82ed9f1fd2c02caca75
SubjectKeyID : a7d72ff40994b1040655e29034bba4f8617134e1
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 04/04/2025 16:05:05 UTC
Not valid after : 04/06/2025 16:15:05 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\test1-20.000\D47D
Provider Name : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info : Provider Type: 80, Key Spec: 1, Flags: 0x0
OCSP URL :
http://testgost2012.cryp...ro.ru/ocsp2012g/ocsp.srfOCSP URL :
http://testgost2012.cryp....ru/ocsp2012gst/ocsp.srfCA cert URL :
http://testgost2012.cryp...oll/testgost2012(13).crtCA cert URL :
http://testgost2012.cryp.../CertEnroll/testroot.p7bCDP :
http://testgost2012.cryptopro.ru/CertEnroll/!0422!0435!0441!0442!043e!0432!044b!0439%20!0423!0426%20!041e!041e!041e%20!0022!041a!0420!0418!041f!0422!041e-!041f!0420!041e!0022(13).crl
CDP :
http://testgost2012.cryp...oll/testgost2012(13).crl=============================================================================
[ErrorCode: 0x00000000]
Если писать просто
certmgr -list -store my, то выводится то же самое, только есть предупреждение
WARNING: Legacy parameter: "-store my"Подведем промежуточные итоги.1. Запрашиваем сертификат
Код:
- -dn "CN=ООО Оператор,S=77 г. Москва,O=ООО Оператор,OID.1.2.643.100.4=1234567890,C=RU" -provtype 80 -cont '\\.\HDIMAGE\test2025' -ca https://cryptopro.ru/certsrv
2. Смотрим полученный сертификат в контейнере
Код:
certmgr -list -container 'HDIMAGE\\test2025'
3. Устанавливаем сертификат из контейнера. Oн устанавливается в стор uMy
Код:
csptest -absorb -certs -autoprov
4. Смотрим список установленных
5. Пробуем подписать файл, где значение thumbprint берем из поля
SHA1 Thumbprint из полученного выше списка
Код:
cryptcp -signf -thumbprint 3539185e5b1123ba0488198c42c039dc50700edc -uMy ./test.txt
сама подпись будет в файле ./test.txt.sgn
Оставшиеся вопросы:1. Какие правила именования контейнеров? Есть вот такой пример
-cont '\\.\HDIMAGE\test2025', потом мы его указываем вот так
'HDIMAGE\\test2025'. Есть какой-то синтаксис? Понятно, что где-то двойные слеши - это экранирование. Все же хочется понимать когда как и что нужно указывать. И что такое
HDIMAGE?
2. Можно ли как-то направить вывод подписи в stdout, чтобы потом его просто получить как результат выполнения команды в Go?
3. Как посмотреть список всех сторов и контейнеров?
4. Все же как удалить все установленное серты, сторы, контейнеры, чтобы привести систему в нулевое состояние? :)
5. Как формируются dn (из примера CN=ООО Оператор,S=77 г. Москва,O=ООО Оператор,OID.1.2.643.100.4=1234567890,C=RU)?
6. provtype по умолчанию 80, какие еще значения бывают?