Waves-enterprise

Браузер Chrome (Chromium Gost, Chromium Edge): запустите браузер и дождитесь оповещения об установленном расширении «CryptoPro Extension for CAdES Browser Plug-in». Включите это расширение.

Waves-enterprise

Если на Вашем компьютере ранее уже выполнялась установка расширения CryptoPro Extension for CAdES Browser Plug-in, а потом оно был удалено, его потребуется установить отдельно. Для этого перейдите по ссылке и установите расширение из интернет-магазина Chrome.

Браузер Opera или Яндекс.Браузер: расширение доступно по ссылке.

Waves-enterprise

Браузер Firefox: скачайте расширение по ссылке и установите в браузер самостоятельно.

Waves-enterprise

Браузер Microsoft Internet Explorer: не требуется дополнительных настроек.


Offline

Nickokow

 

Оставлено
:

16 сентября 2021 г. 14:54:43(UTC)

Добрый день.
У нас есть программа, которая средствами JCP проверяет подписи.


1.1)На сервере с ПО был установлен JCP 2.0.40035 (успешно)
1.2)Был добавлен корневой сертификат из тестового УЦ https://testgost2012.cry….ru/certsrv/certcarc.asp


2)Для клиентской машины, которая подписывает, были сгенерированы и добавлены сертификаты.
Локально на этой машине сгенерированы \ подписаны документы \ проверены подписи (успешно)


3)Подписан документ внутри нашей программы (успешно)


4)проверяю подпись на сервере, получаю ошибку

Код:

DEBUG [com.haulmont.thesis.core.app.signature.CryptoProServerSignatureSupport] [app-core] [admin] For online validation by CRLDP parameter 'com.sun.security.enableCRLDP' (Oracl
e) or 'com.ibm.security.enableCRLDP' (IBM) must be set 'true' to enable or 'ocsp.enable' must be set 'true' (OCSP), or CRL passed for offline validation; error codes: [44] 'Certificate status is unkno
wn or revoked'

5)Не могу понять, как добавить CRL в хранилище JCP, или как JCP обращаться к локальному списку отозванных сертификатов, или как запретить эту проверку.
Сервер с ПО, которое проверяет подпись – Linux RHEL8, GUI не предусмотрен.
Все сертификаты на этом уровне тестовые.

вывернул все мозги, перечитал все-возможные форумы. ЧЯДНТ.Brick wall


Offline

Евгений Афанасьев

 

Оставлено
:

16 сентября 2021 г. 16:33:04(UTC)

Добрый день.

Цитата:

4)проверяю подпись на сервере, получаю ошибку
Код:
DEBUG [com.haulmont.thesis.core.app.signature.CryptoProServerSignatureSupport] [app-core] [admin] For online validation by CRLDP parameter ‘com.sun.security.enableCRLDP’ (Oracl
e) or ‘com.ibm.security.enableCRLDP’ (IBM) must be set ‘true’ to enable or ‘ocsp.enable’ must be set ‘true’ (OCSP), or CRL passed for offline validation; error codes: [44] ‘Certificate status is unkno
wn or revoked’

5)Не могу понять, как добавить CRL в хранилище JCP, или как JCP обращаться к локальному списку отозванных сертификатов, или как запретить эту проверку.
Сервер с ПО, которое проверяет подпись – Linux RHEL8, GUI не предусмотрен.
Все сертификаты на этом уровне тестовые.

В JCP никак не добавить. Если, как сказано в ошибке, укажете в коде System.setProperty(“com.sun.security.enableCRLDP”, “true”), то если в проверяемом сертификате цепочки есть CRLDP (ссылки распространения) для скачивания CRL, они (CRL) будут скачаны из сети и использованы. Если не указано это свойство enableCRLDP или нет доступа к сети (такое бывает), то CRL надо качать отдельно самим и подавать в метод verify(certs, crls) (crls – это список заранее подготовленных X509CRL). Так как используется сертификат из тестового УЦ, CRLDP в нем должен быть, проверьте доступ к crl для скачивания (ссылку на crl можно найти в расширения сертификата и скопировать её в браузер) и включён ли enableCRLDP.

Отредактировано пользователем 16 сентября 2021 г. 18:05:49(UTC)
 | Причина: Не указана


Offline

Nickokow

 

Оставлено
:

17 сентября 2021 г. 6:46:01(UTC)

Цитата:

укажете в коде System.setProperty(“com.sun.security.enableCRLDP”, “true”)

А где именно следует это указывать? Это возможно сделать не java программисту?

Цитата:

подавать в метод verify(certs, crls)

тот-же вопрос, как подать в метод.

Цитата:

подавать в метод verify(certs, crls)

В корневом сертификате из тестового центра нет этих ссылок Waves-enterprise certnew(2).zip (1kb) загружен 0 раз(а).

Цитата:

включён ли enableCRLDP.

где проверить?

p.s работаю с JCP Крипто-про первый раз. И к сожалению не java программист.

Содержание
  1. Сервис для создания подписей для ЕСИА на nodejs с КриптоПро 4. 0 в докер контейнере
  2. Принцип работы
  3. Установка лицензии
  4. Загрузка корневого сертификата
  5. Загрузка пользовательского сертификата
  6. Как запустить
  7. Рест сервер
  8. Как по быстрому выпустить тестовый сертификат:
  9. Авторизация
  10. Возможные проблемы:
  11. Env контейнера
  12. Средства криптографической защиты информации
  13. Хранение контейнера закрытого ключа
  14. Установка сертификата из контейнера
  15. Загрузка и установка корневого сертификата Удостоверяющего Центра и списка отзыва сертификатов
  16. Установка корневого сертификата Удостоверяющего Центра
  17. Установка списка отзывов сертификатов
  18. Копирование контейнера в реестр компьютера
  19. Настройка проверки формата сертификатов
  20. Пример настройки плагина
  21. Дополнительные параметры плагина:
  22. Настройка выполнения проверки полей сертификата по умолчанию

Сервис для создания подписей для ЕСИА на nodejs с КриптоПро 4. 0 в докер контейнере

Принцип работы

  • Устанавливает КриптоПро из установщика cryptopro/install/linux-amd64_deb.tgz
  • Устанавливает лицензию КриптоПро
  • Загружает корневой сертификат есиа
  • Загружает пользовательский сертификат
  • Запускает рест сервер со swagger и методом создания подписей

Установка лицензии

Лицензия устанавливается из аргумента LICENSE, если не указана используется триал версия(работает 3 месяца).

Загрузка корневого сертификата

в зависимости от аргумента ESIA_ENVIRONMENT загружается сертификат нужного окружения есиа:

Корневые сертификаты есиа лежат в папке cryptopro/esia

Загрузка пользовательского сертификата

Необходимо специальным образом сформировать zip-архив certificate_bundle.zip и положить его в папку /cryptopro/certificates.
Пример такого zip-файла лежит в той же директории под названием certificate_bundle_example.zip
Содержимое zip файла:

├── certificate.cer - файл сертификата
└── le-09650.000 - каталог с файлами закрытого ключа
    ├── header.key
    ├── masks2.key
    ├── masks.key
    ├── name.key
    ├── primary2.key
    └── primary.key

Первый найденный файл в корне архива будет воспринят как сертификат, а первый найденный каталог – как связка файлов закрытого ключа. Пароль от контейнера, если есть, передается аргументом CERTIFICATE_PIN

Как запустить

  1. Скачать КриптоПро CSP 4.0 для Linux (x64, deb) и положить по пути install/linux-amd64_deb.tgz
  2. Подложить архив с сертификатом как /cryptopro/certificates/certificate_bundle.zip
  3. Создаем образ docker build --tag cryptopro-sign --build-arg CERTIFICATE_PIN=12345678 .
  4. Запускаем docker run -it --rm -p 3037:3037 --name cryptopro-sign cryptopro-sign

Рест сервер

  • POST /cryptopro/sign – подписать текст

Как по быстрому выпустить тестовый сертификат:

  • Запустить докер контейнер по инструкции выше
  • Заходим в запущенный контейнер docker exec -ti cryptopro-sign sh
  • Создаем запрос на сертификат cryptcp -creatrqst -dn 'cn=test' -cont '\\.\hdimage\test2' -pin 12345678 tmp/test.csr (попросит понажимать разные клавиши)
  • Выводим результат cat /tmp/test.csr
  • Заходим на http://www.cryptopro.ru/certsrv/certrqxt.asp и вставляем вывод
  • В следующем окне выбираем Base64-шифрование и Скачать сертификат
  • Качаем и сохраняем certnew.cer файл в проекте по пути cryptopro/certificates/certnew.cer
  • В отдельном терминале переносим файл в запущенный контейнер docker cp cryptopro/certificates/certnew.cer cryptopro-sign:tmp/test.cer
  • Возвращаемся в первый терминал и загружаем сертификат в КриптоПро cryptcp -instcert -cont '\\.\hdimage\test2' tmp/test.cer
  • Попросит ввести пароль. Вводим 12345678
  • Переносим на нашу машину приватные ключи docker cp cryptopro-sign:var/opt/cprocsp/keys/root/test2.000 cryptopro/certificates/test2.000
  • В папке проекта cryptopro/certificates создаем архив. В архив кладем папку test2.000 и файл certnew.cer
  • Архив называем certificate_bundle.zip, пересобираем докер образ и запускаем.

Черпал вдохновение и взял многие вещи из этого репозитория

Авторизация

Для использования в продакшене лучше, чтобы сервис был не доступен снаружи инфраструктуры, т.к тут через рест можно что угодно подписать зашитым сертификатом. Если все же инфраструктура открытая, то в сервис следует встроить проверку авторизации.

Возможные проблемы:

Если получаете код ошибки 0x80090010 при вызове метода sign – вероятно срок действия вашего сертификата истек. Попробуйте создать новый по инструкции.

Env контейнера

PORT - numer. Порт рест сервера. Дефолт: 3037


Offline

Dmitriy32546

Оставлено
:
28 октября 2021 г. 17:00:59(UTC)

Добрый день.

CryptCP 5.0 (c) “Crypto-Pro”, 2002-2021.debian 10

Установил серты тестового УЦ:/opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file /home/signer/dev_cert2/rootca.cer/opt/cprocsp/bin/amd64/certmgr -inst -store uCa -file /home/signer/dev_cert2/ivanov3_test.cer/opt/cprocsp/bin/amd64/certmgr -install -pfx -file /home/signer/dev_cert2/ivanov3_test.pfx -pin test

Серты генерировал тут
https://www.cryptopro.ru/certsrv/certrqma.asp

При установке корневого сертификата получил предупреждение (ввел “o”):CPCSP: Warning: installing a root certificate with an unconfirmed thumbprint is a security risk. Do you want to install this certificate?Subject: Тестовый головной УЦ ООО “КРИПТО-ПРО” ГОСТ 2012 (УЦ 2.0)Thumbprint (sha1): 9E504E9099C79AA0883FBBFD619662739AC25420(o)OK, (c)Cancel

Информация о установленном сертификате:
signer@dev-scryptopro-service:~$ /opt/cprocsp/bin/amd64/certmgr -list
Certmgr 1.1 (c) “Crypto-Pro”, 2007-2021.
Program for managing certificates, CRLs and stores.
=============================================================================
1——-
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : [email protected], CN=Ivanov3, OU=IT, O=OOO, L=Moscow, S=Moscow, C=RU
Serial : 0x1200599C37C8A7ABD4384D8BE3000100599C37
SHA1 Thumbprint : c25ad71c6ce796033a15b747c6ed0ebbc210022d
SubjKeyID : d33bdddc5b79f9e455f4fcb79747c2e161535b30
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 13/10/2021 09:10:37 UTC
Not valid after : 13/01/2022 09:20:37 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\Ivanov3.000\0518
Provider Name : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info : Provider Type: 80, Key Spec: 1, Flags: 0x0
CA cert URL : http://testca.cryptopro….Test%20Center%202(1).crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro….Test%20Center%202(1).crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента

Промежуточные:
/opt/cprocsp/bin/amd64/certmgr -list -store uCa
Certmgr 1.1 (c) “Crypto-Pro”, 2007-2021.
Program for managing certificates, CRLs and stores.
=============================================================================
1——-
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Serial : 0x37418882F539A5924AD44E3DE002EA3C
SHA1 Thumbprint : cd321b87fdabb503829f88db68d893b59a7c5dd3
SubjKeyID : 4e833e1469efec5d7a952b5f11fe37321649552b
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 27/05/2019 07:24:26 UTC
Not valid after : 26/05/2024 07:34:05 UTC
PrivateKey Link : No
2——-
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : [email protected], CN=Ivanov3, OU=IT, O=OOO, L=Moscow, S=Moscow, C=RU
Serial : 0x1200599C37C8A7ABD4384D8BE3000100599C37
SHA1 Thumbprint : c25ad71c6ce796033a15b747c6ed0ebbc210022d
SubjKeyID : d33bdddc5b79f9e455f4fcb79747c2e161535b30
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 13/10/2021 09:10:37 UTC
Not valid after : 13/01/2022 09:20:37 UTC
PrivateKey Link : No
CA cert URL : http://testca.cryptopro….Test%20Center%202(1).crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro….Test%20Center%202(1).crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
=============================================================================

Корневые:
/opt/cprocsp/bin/amd64/certmgr -list -store uRoot
Certmgr 1.1 (c) “Crypto-Pro”, 2007-2021.
Program for managing certificates, CRLs and stores.
=============================================================================
1——-
Issuer : C=RU, INNLE=7717107991, [email protected], OGRN=1037700085444, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=”ООО “”КРИПТО-ПРО”””, CN=”Тестовый головной УЦ ООО “”КРИПТО-ПРО”” ГОСТ 2012 (УЦ 2.0)”
Subject : C=RU, INNLE=7717107991, [email protected], OGRN=1037700085444, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=”ООО “”КРИПТО-ПРО”””, CN=”Тестовый головной УЦ ООО “”КРИПТО-ПРО”” ГОСТ 2012 (УЦ 2.0)”
Serial : 0x03453C7B0071ADD9AB4C5FC8A8451F97A7
SHA1 Thumbprint : 9e504e9099c79aa0883fbbfd619662739ac25420
SubjKeyID : 86967f858c1b31aa92a68d14f28cbb1f212f5c3a
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 26/07/2021 07:18:42 UTC
Not valid after : 26/07/2036 07:18:42 UTC
PrivateKey Link : No

Написан код для pycades:signer = pycades.Signer()signer.Certificate = cert.Item(1)

signer.CheckCertificate = Truesigner.KeyPin=key_pin

hashedData = pycades.HashedData()hashedData.Algorithm = pycades.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256hashedData.Hash(xml_data)

signedData = pycades.SignedData()signature = signedData.SignHash(hashedData, signer, pycades.CADESCOM_CADES_BES)

При попытке выполнить подпись(signedData.SignHash) получаю ошибку:’A certificate chain processed correctly, but terminated in a root certificate which is not trusted by the trust provider (0x800B0109)’

Дата обновления: 28.06.2022

Номер карточки: SD0012724

Средства криптографической защиты информации

1. Требования к средствам криптографической защиты информации

Для шифрования отправляемых и получаемых документов Вы должны определиться с выбором средства криптографической защиты информации (СКЗИ).


Криптонастройка(1).png

Подробную техническую информацию по перечисленным СКЗИ (версиям, совместимости с операционными системами, алгоритмам подписи и шифрования и т.п.) можно получить на официальных сайтах производителя:

Для VipNet CSP: www.infotecs.ru;
Для КриптоПРО CSP: www.cryptopro.ru.

2. Работа с криптопровайдером «КриптоПРО CSP» и установка сертификатов

Криптонастройка(31).png

Инструкция по установке, настройке ПО «КриптоПРО CSP» доступна здесь.

В отличие от криптопровайдера «VipNet CSP» в криптопровайдере «КриптоПро CSP» лицензия является платной.

Поэтому необходимо не позже 90 суток ввести лицензионный ключ, иначе функции криптопровайдера будут заблокированы. 

Хранение контейнера закрытого ключа

Хранение контейнера ключа для криптопровайдера «КриптоПРО CSP» возможно как в реестре компьютера, так и на внешних носителях информации (flesh-носитель, E-токен). Тестовая ЭП предоставляется в файловом режиме, в виде папки с файлами. Ее нужно скопировать на внешний носитель информации (flesh-носитель, E-токен), а затем добавить в интерфейс криптопровайдера.

Установка сертификата из контейнера

Вы получили контейнер закрытого ключа электронной подписи с тестовыми реквизитами. После открытия полученного архива скопируйте содержимое на внешний носитель информации (Flash-носитель), добавьте контейнер(-ы) закрытого ключа электронной подписи в программу криптографии «КриптоПРО CSP» и произведите из него установку сертификата.

Контейнер закрытого ключа электронной подписи будет представлять собой папку с названием: «*****.000», где «звездочки» – наименование, а «.000» – расширение контейнера закрытого ключа 

Криптонастройка(32).png

Для установки сертификата из закрытого ключа (контейнера) электронной подписи запустите программу «КриптоПРО CSP»

Криптонастройка(33).png

Далее, в открытом криптопровайдере перейдите на вкладку «Сервис» и нажмите кнопку Просмотреть сертификаты в контейнере 

Криптонастройка(34).png

В открывшемся окне нажмите кнопку Обзор 

Криптонастройка(35).png

Выберите контейнер закрытого ключа электронной подписи, расположенный на внешнем носителе, из которого необходимо установить сертификат организации и нажмите кнопку ОК 

Криптонастройка(36).png

Наименование контейнера отобразилось в поле «Имя ключевого контейнера», нажмите кнопку Далее

Криптонастройка(37).png

Перед Вами откроется окно с информацией о сертификате организации. Для установки сертификата нажмите кнопку Установить 

Криптонастройка(38).png

Сертификат установлен в систему Windows.

Для продолжения, в открытом окне нажмите кнопку Свойства 

Криптонастройка(39).png

Перед Вами откроется установленный сертификат

Криптонастройка(40).png

Загрузка и установка корневого сертификата Удостоверяющего Центра и списка отзыва сертификатов

На вкладке «Состав» открытого сертификата организации Вы можете получить информацию и ссылку на скачивание корневого сертификата Удостоверяющего Центра и Списка отзывов сертификатов.

Для получения ссылки на скачивание корневого сертификата Удостоверяющего Центра перейдите в поле «Доступ к информации о центрах сертификации» и выделите его курсором мыши.

Криптонастройка(41).png

В открывшейся информации ниже ссылка на скачивание корневого сертификата Удостоверяющего Центра будет отображена в разделе «Доступ к сведениям центра сертификации Метод доступа=Поставщик центра сертификации» в пункте «Дополнительное имя»

Криптонастройка(42).png

Для скачивания файла корневого сертификата скопируйте после «URL=» ссылку в адресную строку браузера и нажмите на клавиатуре кнопку ENTER, а затем сохраните файл в любой каталог

Криптонастройка(44).png

Для получения ссылки на скачивание списка отозванных сертификатов необходимо перейти на вкладку «Состав» и выбрать из списка поле «Точки распространения списков отзыва»

Криптонастройка(45).png

В открывшейся информации в разделе «Имя точки распространения» скопируйте ссылку на загрузку списков отзыва

Криптонастройка(46).png

Для скачивания файла списка отзыва сертификатов скопируйте после «URL=» ссылку в адресную строку браузера и нажмите на клавиатуре кнопку ENTER, а затем сохраните файл в любой каталог

Криптонастройка(47).png

Установка корневого сертификата Удостоверяющего Центра

После скачивания файла корневого сертификата откройте скачанный файл двойным кликом мыши. В открывшемся окне сертификата нажмите кнопку Установить сертификат

Криптонастройка(48).png

Перед Вами откроется «Мастер импорта сертификатов». Следуйте указаниям «Мастера импорта сертификатов». На этапе импорта необходимо указать хранилище сертификатов «Доверенные корневые центры сертификации» и нажать Далее

Криптонастройка(49).png

При появлении окна «Предупреждение системы безопасности», необходимо нажать кнопку ОК для установки сертификата в системное хранилище Windows

Криптонастройка(50).png

После успешного импорта сертификата нажмите Готово.

Во время тестирования и работы сервиса «1С-ЭДО» следует учесть, что данный сервис работает с несколькими операторами ЭДО СФ и соответственно, несколькими Удостоверяющими Центрами.

При обмене документами между контрагентами, работающих через разных Операторов ЭДО СФ, может появиться ошибка подписи, содержащая текст: «Неверна». Если открыть подробную информацию, то сообщение будет выглядеть так: «Сертификат недействителен по причине: Цепочка сертификатов обработана, но прервана на корневом сертификате, который не является доверенным»

Криптонастройка(51).png

В этом случае необходимо сохранить к себе на компьютер сертификат организации через пункт меню «Сохранить в файл» из формы поступившего документа, выгрузить из него корневой сертификат Удостоверяющего центра и установить последний в «Доверенные корневые центры сертификации», как показано выше.

Установка списка отзывов сертификатов

После скачивания файла списка отзывов сертификата и сохранения его в нужный каталог откройте его правой кнопкой мыши через меню «Установить список отзыва (CRL)»

Криптонастройка(52).png

Перед Вами откроется «Мастер импорта сертификатов». Следуйте указаниям «Мастера импорта сертификатов». На этапе импорта необходимо убедиться, что пункт «Автоматически выбрать хранилище на основе типа сертификата» выбран и нажать Далее

Криптонастройка(53).png

После успешного импорта сертификата нажмите Готово.

Проверить корректность выстроенной цепочки сертификатов в системном хранилище Windows Вы можете на вкладке «Путь сертификации». Сертификаты не должны иметь иконок с красными крестами, а в разделе «Состояние сертификата» должен быть статус «Этот сертификат действителен»

Криптонастройка(54).png

Копирование контейнера в реестр компьютера

Если Вы хотите использовать подпись файлов при работе с сервисом «1С-ЭДО», не используя flash-носитель информации, то скопируйте контейнер закрытого ключа электронной подписи в реестр компьютера, затем произвести установку сертификата.

Для этого необходимо вставить flash-носитель информации с контейнером закрытого ключа электронной подписи в компьютер и открыть программу «КриптоПРО CSP»

Криптонастройка(55).png

В интерфейсе «КриптоПРО CSP» перейти на вкладку «Сервис» и нажать кнопку Скопировать

Криптонастройка(56).png

В открытом окне нажмите кнопку Обзор

Криптонастройка(57).png

В следующем окне выберите контейнер закрытого ключа с flash-накопителя информации, который необходимо скопировать и нажмите ОК

Криптонастройка(58).png

В следующем окне задайте имя для контейнера с названием организации, Ф.И.О. ответственного лица и датой создания или копирования, нажмите кнопку Готово

Криптонастройка(59).png

Выберите место хранения копии контейнера закрытого ключа электронной подписи – «Реестр» и нажмите ОК

Криптонастройка(60).png

Задайте новый пароль к контейнеру или введите пароль по умолчанию и нажмите ОК

Криптонастройка(61).png

Криптонастройка(62).png

Контейнер закрытого ключа электронной подписи будет скопирован в выбранное Вами место

Криптонастройка(63).png

Извлеките flash-накопитель из компьютера и произведите установку сертификата из копии контейнера закрытого ключа электронной подписи, расположенной в Реестре компьютера.

Аналогичным способом производится копирование между любыми видами носителя ключа, поддерживаемого криптопровайдером.

Далее пользователю можно приступать к регистрации сертификата в учетной записи.


Offline

leopold69

 

Оставлено
:

10 ноября 2021 г. 12:13:08(UTC)

Подскажите, пожалуйста, что можно исправить в возникшей ситуации. Есть закрытая сеть в которой работает WEB-ресурс, в котором документы подписываются в WEB-браузере с помощью плагина криптопро. Когда компьютер подключен к этой сети через интернет, посредством vipnet-клиента все подписи работают нормально. Если компьютер включен напрямую в сеть БЕЗ интернета, то подписывается только ЛИЧНОЙ ЭЦП, а на подписи организации, т.е. с ОГРН, Браузер зависает на несколько часов, без сообщений об ошибках. Может нужно разрешить какой-то ресурс для разрешения подписи? Корневые и промежуточные сертификаты установлены. Установлена криптопро 4 под линукс. В той же ситуации под Windows все работает в обоих вариантах


Offline

Андрей Русев

 

Оставлено
:

10 ноября 2021 г. 14:28:42(UTC)

Здравствуйте.
Попробуйте сформировать подпись с помощью cryptcp как личным сертификатом, так и сертификатом организации и прислать вывод в консоль (без интернета):

Код:


user@test-x64-astra16:~$ /opt/cprocsp/bin/amd64/cryptcp -sign -dn "CN=User_Cert" /tmp/test.txt /tmp/test.txt.p7s
CryptCP 5.0 (c) "Crypto-Pro", 2002-2021.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:[email protected], User_Cert
Valid from 09.11.2021 19:18:41 to 10.11.2031 01:58:41

Folder '/tmp/':
/tmp/test.txt... Signing the data...
Signed message is created.
[ErrorCode: 0x00000000]


Offline

leopold69

 

Оставлено
:

11 ноября 2021 г. 11:33:14(UTC)

Автор: Андрей Русев Перейти к цитате

Здравствуйте.
Попробуйте сформировать подпись с помощью cryptcp как личным сертификатом, так и сертификатом организации и прислать вывод в консоль (без интернета):

Код:


user@test-x64-astra16:~$ /opt/cprocsp/bin/amd64/cryptcp -sign -dn "CN=User_Cert" /tmp/test.txt /tmp/test.txt.p7s
CryptCP 5.0 (c) "Crypto-Pro", 2002-2021.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:[email protected], User_Cert
Valid from 09.11.2021 19:18:41 to 10.11.2031 01:58:41

Folder '/tmp/':
/tmp/test.txt... Signing the data...
Signed message is created.
[ErrorCode: 0x00000000]

Здравствуйте, не получилось сделать вывод в файл и консоль, выполнил команду, и подписал подписью, но результата нет


[user@localhost ~]$ /opt/cprocsp/bin/amd64/cryptcp -sign -dn “CN=Евдокимова Татьяна Васильевна” /tmp/test.txt /tmp/test.txt.p7s
CryptCP 4.0 (c) “КРИПТО-ПРО”, 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:Евдокимова Татьяна Васильевна, 621401460581, 04431059722, Евдокимова, Татьяна Васильевна, Ряжск, 62 Рязанская область, RU, [email protected]
Действителен с 31.08.2021 11:15:21 по 31.08.2022 11:15:21

^C


После выполнения команды /opt/cprocsp/bin/amd64/cryptcp -sign -dn “CN=Евдокимова Татьяна Васильевна” /tmp/test.txt /tmp/test.txt.p7s
нет ответа в консоли, подождал и закрыл

Отредактировано пользователем 11 ноября 2021 г. 11:38:14(UTC)
 | Причина: Не указана


Offline

leopold69

 

Оставлено
:

11 ноября 2021 г. 19:30:50(UTC)

Автор: Андрей Русев Перейти к цитате

Здравствуйте.
Попробуйте сформировать подпись с помощью cryptcp как личным сертификатом, так и сертификатом организации и прислать вывод в консоль (без интернета):

Код:


user@test-x64-astra16:~$ /opt/cprocsp/bin/amd64/cryptcp -sign -dn "CN=User_Cert" /tmp/test.txt /tmp/test.txt.p7s
CryptCP 5.0 (c) "Crypto-Pro", 2002-2021.
Command prompt Utility for file signature and encryption.

The following certificate will be used:
RDN:[email protected], User_Cert
Valid from 09.11.2021 19:18:41 to 10.11.2031 01:58:41

Folder '/tmp/':
/tmp/test.txt... Signing the data...
Signed message is created.
[ErrorCode: 0x00000000]

Вод вывод команд при подписании в закрытой сети, 1 – с огрн, 1 – личная

[user@host066 ~]$ /opt/cprocsp/bin/amd64/cryptcp -sign -dn “SN=Кинякин” /tmp/test.txt /tmp/test.txt.p7s
CryptCP 4.0 (c) “КРИПТО-ПРО”, 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:04599264402, 1026200663280, 006214001450, “ул. Высотная, д. 20”, ГГГГГГГГГ МММММММММММ, КККККККККК, [email protected], Ряжск, 62 Рязанская область, RU, ч, 0, “ГБУ РО “”РЯЖСКИЙ ММЦ”””, “ГБУ РО “”РЯЖСКИЙ ММЦ”””
Действителен с 06.12.2020 17:51:46 по 06.12.2021 17:51:46

Цепочка сертификатов не проверена для следующего сертификата:
Субъект:04599264402, 1026200663280, 006214001450, “ул. Высотная, д. 20”, ГГГГГГГГГ МММММММММММ, КККККККККК, [email protected], Ряжск, 62 Рязанская область, RU, ч, 0, “ГБУ РО “”РЯЖСКИЙ ММЦ”””, “ГБУ РО “”РЯЖСКИЙ ММЦ”””
Действителен с 06.12.2020 17:51:46 по 06.12.2021 17:51:46

Ошибка: Цепочка сертификатов не проверена для следующего сертификата (код ошибки 10000):
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:396: 0x20000133
Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?y

Цепочки сертификатов проверены.
Папка ‘/tmp/’:
/tmp/test.txt… Подпись данных…

Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000]
[user@host066 ~]$ /opt/cprocsp/bin/amd64/cryptcp -sign -dn “CN=Евдокимова Татьяна Васильевна” /tmp/test.txt /tmp/test.txt.p7s
CryptCP 4.0 (c) “КРИПТО-ПРО”, 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:Евдокимова Татьяна Васильевна, 621401460581, 04431059722, Евдокимова, Татьяна Васильевна, Ряжск, 62 Рязанская область, RU, [email protected]
Действителен с 31.08.2021 11:15:21 по 31.08.2022 11:15:21

Цепочка сертификатов не проверена для следующего сертификата:
Субъект:Евдокимова Татьяна Васильевна, 621401460581, 04431059722, Евдокимова, Татьяна Васильевна, Ряжск, 62 Рязанская область, RU, [email protected]
Действителен с 31.08.2021 11:15:21 по 31.08.2022 11:15:21

Один из сертификатов в цепочке возможно отозван.
Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?y

Цепочки сертификатов проверены.
Папка ‘/tmp/’:
/tmp/test.txt… Подпись данных…

Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000]
[user@host066 ~]$


Offline

leopold69

 

Оставлено
:

11 ноября 2021 г. 19:50:40(UTC)

Получается что при наличии интернета отсутствующий в цепочке сертификат подтягивается из интернета? Не могу определить отсутствующий сертификат.


Offline

leopold69

 

Оставлено
:

11 ноября 2021 г. 20:11:49(UTC)

[user@host066 ~]$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn ‘SN=Кинякин’ -df /temp/kinyakin.cer
CryptCP 4.0 (c) “КРИПТО-ПРО”, 2002-2018.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:04599264402, 1026200663280, 006214001450, “ул. Высотная, д. 20”, ГГГГГГГГГ МММММММММ, ККККККККК, [email protected], Ряжск, 62 Рязанская область, RU, ч, 0, “ГБУ РО “”РЯЖСКИЙ ММЦ”””, “ГБУ РО “”РЯЖСКИЙ ММЦ”””
Действителен с 06.12.2020 17:51:46 по 06.12.2021 17:51:46

1.Find path for:
Subject:’CN=”# “” /! &”””, O=”# “” /! &”””, OU=0, T=;02=K9 2@0G, C=ru, S=62 O70=A:0O >1;0ABL, L= O6A:, [email protected], SN=8=O:8=, G=5==0489 0:A8<>28G, STREET=”C;. KA>B=0O, 4. 20″, INN=006214001450, OGRN=1026200663280, SNILS=04599264402′
Issuer:’CN=” “”””””, O=”B:@KB>5 :F8>=5@=>5 1I5AB2> “”=D>”5! =B5@=5B “@0AB”””, C=ru, S=77 3. >A:20, L=>A:20, [email protected], STREET=”!B0@K9 5B@>2A:>- 07C<>2A:89 ?@>574, 4. 1/23, AB@. 1, >D8A 88″, INN=007743020560, OGRN=1027739113049′

There is no valid issuer.
———– Error chain ———–
Chain status:IS_PARTIAL_CHAIN
Revocation reason:unspecified
1.
Subject:’CN=”# “” /! &”””, O=”# “” /! &”””, OU=0, T=;02=K9 2@0G, C=ru, S=62 O70=A:0O >1;0ABL, L= O6A:, [email protected], SN=8=O:8=, G=5==0489 0:A8<>28G, STREET=”C;. KA>B=0O, 4. 20″, INN=006214001450, OGRN=1026200663280, SNILS=04599264402′
Issuer:’CN=” “”””””, O=”B:@KB>5 :F8>=5@=>5 1I5AB2> “”=D>”5! =B5@=5B “@0AB”””, C=ru, S=77 3. >A:20, L=>A:20, [email protected], STREET=”!B0@K9 5B@>2A:>- 07C<>2A:89 ?@>574, 4. 1/23, AB@. 1, >D8A 88″, INN=007743020560, OGRN=1027739113049′
Cert status:CERT_TRUST_NO_ERROR

Цепочка сертификатов не проверена для следующего сертификата:
Субъект:04599264402, 1026200663280, 006214001450, “ул. Высотная, д. 20”, ГГГГГГГГГ МММММММММ, ККККККККК, [email protected], Ряжск, 62 Рязанская область, RU, ч, 0, “ГБУ РО “”РЯЖСКИЙ ММЦ”””, “ГБУ РО “”РЯЖСКИЙ ММЦ”””
Действителен с 06.12.2020 17:51:46 по 06.12.2021 17:51:46

Ошибка: Цепочка сертификатов не проверена для следующего сертификата (код ошибки 10000):
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:396: 0x20000133
Вы хотите использовать этот сертификат (Да[Y], Нет[N], Отмена[C])?y

Цепочки сертификатов проверены.
Ошибка: Не удалось открыть файл ‘/temp/kinyakin.cer’.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Files.cpp:547: 0x20000065
[ErrorCode: 0x20000065]


Offline

Андрей Русев

 

Оставлено
:

11 ноября 2021 г. 23:40:11(UTC)

Цитата:

Получается что при наличии интернета отсутствующий в цепочке сертификат подтягивается из интернета?

Именно так. В закрытой сети промежуточные надо ставить в хранилище CA руками (и CRL-и туда же). У вас не хватает [email protected].
Но это неудобство не объясняет зависание. Проверка цепочек – очень непростая тема, мы многое в ней исправили в КриптоПро CSP 5.0. Очень рекомендую сравнить поведение с сертифицированным КриптоПро CSP 5.0 R2 Kraken (5.0.12000). Кстати, там есть инструмент поудобней для проверки и вывода цепочек:

Код:

/opt/cprocsp/bin/amd64/certmgr -list -chain -dn CN=your_cert

Ну и в GUI – в cptools это всё тоже есть.


Offline

leopold69

 

Оставлено
:

12 ноября 2021 г. 9:11:15(UTC)

Автор: Андрей Русев Перейти к цитате

Цитата:

Получается что при наличии интернета отсутствующий в цепочке сертификат подтягивается из интернета?

Именно так. В закрытой сети промежуточные надо ставить в хранилище CA руками (и CRL-и туда же). У вас не хватает [email protected].
Но это неудобство не объясняет зависание. Проверка цепочек – очень непростая тема, мы многое в ней исправили в КриптоПро CSP 5.0. Очень рекомендую сравнить поведение с сертифицированным КриптоПро CSP 5.0 R2 Kraken (5.0.12000). Кстати, там есть инструмент поудобней для проверки и вывода цепочек:

Код:

/opt/cprocsp/bin/amd64/certmgr -list -chain -dn CN=your_cert

Ну и в GUI – в cptools это всё тоже есть.

Спасибо за помощь. Если нам закупят 5 версию конечно потестирую.

Настройка проверки формата сертификатов

Сервис Проверки Подписи «КриптоПро SVS» позволяет настроить дополнительную проверку
соответствия полей сертификата установленной форме.

Проверка происходит на основании структуры полей, представленных в следующих правилах.

  • Версия (version). Версия сертификата должна быть не ниже 3.
  • Серийный номер (serial number). Проверяется наличие номера и отсутствие в нем недопустимых символов.
  • Алгоритм подписи (signature). В поле algorithm, входящем в состав поля signature, должен содержаться идентификатор используемого алгоритма подписи:
    • ГОСТ Р 34.10–2012 с ключом длиной 256 бит: “1.2.643.7.1.1.3.2”, szOID_CP_GOST_R3411_12_256_R3410
    • ГОСТ Р 34.10–2012 с ключом длиной 512 бит: “1.2.643.7.1.1.3.3”, szOID_CP_GOST_R3411_12_512_R3410
    • (для архивного хранения и проверки подписи) ГОСТ Р 34.10-2001: “1.2.643.2.2.3”, szOID_CP_GOST_R3411_R3410EL
  • Имя издателя (issuer) — проверяется только наличие его в сертификате.
  • Дата и время начала действия сертификата (notBefore).
  • Дата и время окончания действия сертификата (notAfter).
  • Имя владельца сертификата (subject).
    Возможна проверка следующих компонентов имени владельца сертификата (компоненты имени проверяются на допустимые символы, длину, если такие требования имеются):
    • ФИО или наименование владельца (и другие сведения, если требуется) (commonName, title, surname, givenName)
    • Местонахождение (countryName, stateOrProvinceName, localityName, streetAddress)
    • СНИЛС (SNILS)
    • ОГРН (OGRN)
    • ОГРНИП (OGRNIP)
    • ИНН (INN)
    • ИНН юридического лица (ЮЛ) (INNLE)
    • совпадение общего имени и наименования организации (CN=O)
    • тип идентификации заявителя (identificationKind)
  • Открытый ключ (subjectPublicKeyInfo). Проверяется только наличие его в сертификате.
  • Дополнения (расширения) сертификата (Extensions). Проверяется только наличие следующих расширений в сертификате.
    • Authority Key Identifier, OID.2.5.29.35, идентификатор ключа УЦ.
    • Key Usage, OID.2.5.29.15, область использования ключа.
    • Certificate Policies, OID.2.5.29.32, политики сертификата. Для данного расширения проверяется содержимое в соответствии с требованиями, указанными в Приказе ФСБ РФ от 27 декабря 2011 г. N 795.
    • Subject Sign Tool, OID.1.2.643.100.111, сведения о средстве ЭП владельца сертификата.
    • Issuer Sign Tool, OID.1.2.643.100.112, сведения о средствах ЭП УЦ и средствах УЦ.
    • ExtendedKeyUsage, OID.2.5.29.37, расширенное использование ключа. Состав дополнения (расширения) зависит от информационной системы, в которой используется сертификат.
    • CDP, OID.2.5.29.31, точки распространения списков сертификатов, досрочно прекративших действие (CRL).
    • IdentificationKind, OID.1.2.643.100.114, идентификация заявителя.

Проверка сертификата выполняется при помощи специального плагина. Для активации проверки
сертификатов необходимо зарегистрировать плагин с помощью Windows PowerShell. После
установки КриптоПро SVS плагин находится в директории &lt;Путь установки&gt;\cprodss\Plugins\certverifiers\
и называется SVS.CertificateVerifier.Qualified.dll.

Для регистрации и настройки плагина проверки формата сертификатов используются командлеты
Add-VsCertificateVerifierPlugin, Get-VsCertificateVerifierPlugin,
Remove-VsCertificateVerifierPlugin.

Для настройки проверки того, что сертификаты выданы определенным УЦ, необходимо выполнение следующих действий:

  • зарегистрировать отпечатки корневых сертификатов в КриптоПро SVS. Работа с отпечатками производится при помощи командлетов
    Add-VsQualifiedCAThumbprints, Get-VsQualifiedCAThumbprints
    и Remove-VsQualifiedCAThumbprints. Если отпечатки не заданы, данная проверка сертификатов проводиться не будет.

  • установить корневые сертификаты УЦ в выделенное хранилище КриптоПро SVS. Хранилище создается автоматически при установке
    КриптоПро SVS и имеет название вида &lt;Имя веб-приложения SVS&gt;-TSL.

Пример настройки плагина

# Регистрация плагина и настройка пути к файлу TSL
Add-VsCertificateVerifierPlugin -Assembly SVS.CertificateVerifier.Qualified.dll -PluginDescription "Проверка сертификата на соответствие установленной форме" -Parameters @{'TSLPath'='C:\TSL.xml'}

# Добавление отпечатков корневых сертификатов Минцифры РФ
Add-VsQualifiedCAThumbprints -Thumbprint 4bc6dc14d97010c41a26e058ad851f81c842415a
Add-VsQualifiedCAThumbprints -Thumbprint aff05c9e2464941e7ec2ab15c91539360b79aa9d
Add-VsQualifiedCAThumbprints -Thumbprint 2f0cb09be3550ef17ec4f29c90abd18bfcaad63a

Если плагин зарегистрирован и настроен, в веб-интерфейсе КриптоПро SVS при проверке
сертификата будет выводиться дополнительная информация о соответствии его заданным правилам.
При проверке ЭП также будет осуществляться проверка данного сертификата.

Дополнительные параметры плагина:

  • LocationCheck – требовать обязательного наличия компонентов местонахождения. Возможные значения: true, false. Значение по умолчанию false;
  • OrganizationNameStrictCheck – требовать совпадения значений компонентов имени CN и O в сертификате. Возможные значения: true, false. Значение по умолчанию false;
  • INNforLECheckMode – режим проверки ИНН ЮЛ. Возможные значения: Any, Soft, Strict. Значение по умолчанию Soft.
    • Any – требуется присутствие INN и/или INNLE;
    • Soft – требуется присутствие INNLE; присутствие INN докускается;
    • Strict – требуется присутствие только INNLE.
  • TSLPath – полный путь к файлу TSL.

Для проверки УЦ на принадлежность к заданному списку УЦ необходимо указать путь к файлу со списком
УЦ Tsl.xml в параметре TSLPath.

Загрузка файла Tsl.xml возможна следующими способами:

DSS.TslTool.exe --skipcrl --skipcerts --skiproot

Файл TSL будет загружен в папку tmp в каталоге утилиты Dss.TslTool.exe.

  • при помощи команды wget в консоли Powershell
wget https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml -OutFile E:\tmp\tsl.xml

SVS автоматически отслеживает изменения файла TSL, путь к которому указан в параметре TSLPath.
Скопировать актуальный файл TSL можно с помощью Powershell-скрипта, приведенного ниже.
Данный скрипт возможно добавить в планировщик задач и выполнять раз в сутки (или чаще).

Пример скрипта копирования TSL:

$ErrorActionPreference = "Stop"

# Полный путь к загруженному файлу TSL
$sourceFile = "E:\tmp\tsl_source\tsl.xml"

# Полный путь к файлу TSL, используемому SVS
$destinationFile = "E:\tmp\tsl_target\tsl.xml"

# Загрузка файла TSL
wget https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml -OutFile $sourceFile

if (!(Test-Path $sourceFile -PathType Leaf)) {
    # Загруженный файл TSL отсутствует
    Write-Host "Файл TSL отсутствует! " $sourceFile
    exit 2;
}

$targetFolder1 = Split-Path $destinationFile -Parent
if (!(Test-Path $targetFolder1 -PathType Container)) {
    # Не существует каталог, в который требуется скопировать файл TSL
    Write-Host "Каталог не существует! " $targetFolder1
    exit 2;
}

if (!(Test-Path $destinationFile -PathType Leaf)) {

 Write-Host "Копирование нового файла TSL..."

 # Целевой файл TSL отсутствует
 # Просто копируем файл TSL
 Copy-Item $sourceFile -Destination $destinationFile

} else {
 # Целевой файл TSL присутствует
 # Копируем файл TSL при помощи временного файла

 Write-Host "Замена существующего файла TSL... "

 $targetFolder = Split-Path $destinationFile -Parent
 $tmpTslPath = Join-Path -Path $targetFolder -ChildPath "temp_tsl.xml"

 if (Test-Path $tmpTslPath -PathType Leaf) {
    # Если временный файл существует, удалим его
    Remove-Item $tmpTslPath -Force
 }

 # Копируем TSL во временный файл
 Copy-Item $sourceFile -Destination $tmpTslPath

 # Перемещаем TSL в целевой файл
 Move-Item $tmpTslPath -Destination $destinationFile -Force
}

Настройка выполнения проверки полей сертификата по умолчанию

Проверка соответствия полей сертификата установленной форме при помощи описанного в данном разделе плагина
может применяться по умолчанию как в веб-интерфейсе SVS, так и при обращении к SVS с использованием REST API.
Для этого в настройках плагина необходимо указать флаг CheckByDefaultRequired.

Set-VsCertificateVerifierPlugin -ID 1 -CheckByDefaultRequired 1

В зависимости от интерфейса SVS данная настройка будет применена следующим образом:

  • в веб-интерфейсе SVS – напротив пункта “Проверка сертификата на соответствие установленной форме” (или иной формулировке, если это было указано при настройке плагина) в разделе “Дополнительные проверки” по умолчанию будет активирован чекбокс. Пользователь может самостоятельно отключить проверку, деактивировав данный чекбокс перед отправкой сертификата на проверку.
  • при использовании REST API SVS – параметр зависит от переданного в запросе списка CertVerifiersPluginsIds:
    • если список передан – проверка не учитывается, будут применены плагины, указанные в списке;
    • если список передан со значением NULL – проверка не учитывается, никакие дополнительные проверки к сертификату применяться не будут;
    • если список НЕ передан (отсутствует в запросе) – проверка учитывается, сертификат будет проверен в соответствии с настройками плагина, описанного в данном разделе.

Для прикладных систем, взаимодействующих с КриптоПро SVS через REST API, но не умеющих обрабатывать результаты дополнительных
проверок сертификатов (параметр CertificateVerificationResult),
можно включить неуспешный результат проверки в основное сообщение об ошибке (параметр Message).
Данное поведение можно настроить при помощи следующей команды.

Set-VsProperties -IncludeCertPluginErrorInfoInMainError 1
Restart-VsInstance

Читайте также:  Инструкция по подписанию документов электронной подписью
Оцените статью
ЭЦП Эксперт
Добавить комментарий