OpenSSL и ГОСТ. Генерация ключей
После того как [установили и настроили](https://kirill-zak.ru/2015/08/13/298 OpenSSL
с поддержкой ГОСТ алгоритмов, можно сгенерировать приватный ключ и запроса на сертификат с использованием ГОСТ.
Сперва подготовим каталог, куда будет произведена генерация ключей и запроса на сертификата.
mkdir ~/.keys
cd ~/.keys
Теперь сгенерируем приватный ключ и запрос на сертификат.
openssl req -newkey gost2001 -pkeyopt paramset:A -out cert.csr -keyout key.pem
Параметры:
- параметр
gost2001
указывает на использование алгоритма ГОСТ Р 34.10-2001; - параметр
-pkeyopt
paramset:A
устанавливает параметры OID для алгоритма шифрования.
Возможные варианты:
paramset | OID |
---|---|
A | id-GostR3410-2001-CryptoPro-A-ParamSet |
B | id-GostR3410-2001-CryptoPro-B-ParamSet |
C | id-GostR3410-2001-CryptoPro-C-ParamSet |
XA | id-GostR3410-2001-CryptoPro-XchA-ParamSet |
XB | id-GostR3410-2001-CryptoPro-XchB-ParamSet |
Теперь необходимо ввести кодовую фразу на приватный ключ После этого, данные сертификата
Generating a 2048 bit GOST2001 private key
writing new private key to ‘key.pem’
Enter PEM pass phrase:
Verifying — Enter PEM pass phrase:
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.Country Name (2 letter code) [AU]:RU
Please enter the following ‘extra’ attributes
State or Province Name (full name) [Some-State]:Moscow
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Roga i Kopyta Ltd
Organizational Unit Name (eg, section) []:CEO
Common Name (e.g. server FQDN or YOUR name) []:user
Email Address []:user@mail.com
to be sent with your certificate request
A challenge password []:
An optional company name []:
Теперь файл с запросом на сертификат (cert.csr) можно отправить в УЦ. После получения сертификата, можно использовать приватный ключ для создания ЭЦП или шифрования данных.
Если необходимо создать самоподписной сертификат, то это можно сделать с помощью команды:
openssl x509 -req -in cert.csr -out cert.pem -signkey key.pem -days 365