понедельник, 7 июня 2021 г.

Создание самоподписного сертификата электронной подписи с ГОСТ.

Для тестирования сайтов с ЭП бывают нужны тестовые ЭП. Причем не простые, а с шифрованием по ГОСТ. Где взять и как сделать?

Есть в винде такая утилита под названием certreq (общий хелп можно найти тут: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1). С помощью этой утилиты можно сделать много чего с сертификатами и подписями. Например:

получить общий список криптопровайдеров:

certutil –csplist

получить список алгоритмов:

certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo

и даже сгенерировать новый сертификат с ключом:

certreq -new request.txt RequestFileOut

где request.txt - это файлик с запросом сертификата примерно такого содержания:

[NewRequest]
Subject = "CN=test-ets Юрик 1;SN=Длиннойфамильный;G=Светлана Григорьевно;C=RU;S=78 г. Санкт-Петербург;L=Санкт-Петербург;S=УЛИЦА ОРДИНАРНАЯ, ДОМ 20, ЛИТЕР В;O=АО ЭТБ;T=Главный ведущий первый заместитель руководителя по вопросам тестирования подписей;E=test-ur1@ao-etb.ru"

;HashAlgorithm = "GOST R 34.11-94"
;ProviderName = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider"
;ProviderType = 75

;HashAlgorithm = "GR 34.11-2012 256"
ProviderName = "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider"
;ProviderType = 80

;HashAlgorithm = "GR 34.11-2012 512"
;ProviderName = "Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider"
;ProviderType = 81

; MachineKeySet = true
RequestType = Cert
ValidityPeriodUnits=100 ; срок действия: 100
ValidityPeriod=Years ; лет
UseExistingKeySet=false ; Генерирует новый приватный ключ для экспорта
Exportable = true ; Делает возможным экспорт приватного ключа в PFX
KeyUsage = 0xf0