Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

С 1 апреля 2020 года ЕСИА запрещает использование RSA-шифрования. В качестве замены предлагается  ГОСТ Р 34.10-2012. Это требует получения ГОСТ-сертификата от аккредитованного удостоверяющего центра.
В большинстве такие сертификаты сгенерированы с помощью ПО КриптоПРО и открытие их с помощью любых других утилит (openssl, bouncycastle) не представляется возможным. Попытки открыть экспортированный из КриптоПРО PKCS#12 контейнер с помощью OpenSSL завершаются подобной ошибкой:

Блок кода
languagebash
themeRDark
$ openssl pkcs12 -in container.pfx
Enter Import Password:
Bag Attributes
    localKeyID: 01 00 00 00
    friendlyName: 20200313-114830-#  ! (/) " &▒""-!" 2012
    Microsoft CSP Name: Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Error outputting keys and certificates
140403870810560:error:06074079:digital envelope routines:EVP_PBE_CipherInit:unknown pbe algorithm:../crypto/evp/evp_pbe.c:95:TYPE=1.2.840.113549.1.12.1.80
140403870810560:error:23077073:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 algor cipherinit error:../crypto/pkcs12/p12_decr.c:41:
140403870810560:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:../crypto/pkcs12/p12_decr.c:94:

...

Для начала нужно установить пакет с gost engine:

Блок кода
languagebash
themeRDark
apt install libengine-gost-openssl1.1

...

В начало файла добавить:

Блок кода
languagebash
themeRDark
title/etc/ssl/openssl.cnf
openssl_conf = openssl_def


Затем добавить в конец:

Блок кода
languageyml
themeRDark
title/etc/ssl/openssl.cnf
[openssl_def] 
engines = engine_section 
[engine_section] 
gost = gost_section 
[gost_section] 
default_algorithms = ALL 
engine_id = gost 
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet

...

После этого можно проверить наличие ГОСТ-шифров командой:

Блок кода
languagebash
themeRDark
openssl ciphers | tr ":" "\n" | grep -i gost

...

Для выполнения этого пункта потребуется наличие всех составляющих, экспортированных из КриптоПРО:

Блок кода
languagebash
themeRDark
header.key
masks2.key
masks.key
name.key
primary2.key
primary.key

...

Выполняем команду:

Блок кода
languagebash
themeRDark
./get-cpcert <PATH> <PASSWORD> > result.pem

...

Теперь можно создать PKCS#12 контейнер, который понимает Конструктор Порталов:

Блок кода
languagebash
themeRDark
openssl pkcs12 -engine gost -export -in result.pem -out result.pfx

...