Версия: 1.1.1.t
OpenSSL - это набор криптографических инструментов, реализующий протоколы безопасных сокетов (SSL v2/v3) и протокол безопасности транспортного уровня (TLS v1), а также связанные с ними криптографические стандарты.
Программа openssl - это инструмент командной строки для использования различных криптографических функций библиотеки OpenSSL из командной оболочки. Ее можно использовать для:
Контактная информация:
Официальный сайт
Лицензия:
custom:BSD
Синтаксис:
openssl command [ command_opts ] [ command_args ]
openssl list [ standard-commands | digest-commands | cipher-commands |
cipher-algorithms | digest-algorithms | public-key-algorithms]
где:
Подробнее об использовании OpenSSL:
man openssl
Для проверки доступности и информации о криптографическом движке ГОСТ в OpenSSL открыть терминал и ввести:
openssl engine gost -c
Примерный вывод:
(gost) Reference implementation of GOST engine
[gost89, gost89-cnt, gost89-cnt-12, gost89-cbc, grasshopper-ecb, grasshopper-cbc, grasshopper-cfb, grasshopper-ofb, grasshopper-ctr, magma-cbc, magma-ctr, id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm, md_gost94, gost-mac, md_gost12_256, md_gost12_512, gost-mac-12, magma-mac, grasshopper-mac, id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac, gost2001, id-GostR3410-2001DH, gost-mac, gost2012_256, gost2012_512, gost-mac-12, magma-mac, grasshopper-mac, id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac, id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac]
Для генерации закрытого ключа RSA открыть терминал и ввести:
openssl genrsa -out test.example.ru.key 2048
где:
Generating RSA private key, 2048 bit long modulus (2 primes)
..............................................+++++
....+++++
e is 65537 (0x010001)
Для проверки возможности использования OpenSSL алгоритмов ГОСТ открыть терминал и ввести:
openssl ciphers | tr ":" "\n" | grep GOST
Примерный вывод:
GOST2012-GOST8912-GOST8912
GOST2001-GOST89-GOST89
Для создания самозаверенного сертификата с использованием алгоритма ГОСТ Р 34.10-2012 и хэш-функции ГОСТ Р 34.11-2012 открыть терминал и ввести:
openssl req -x509 -newkey gost2012_256 -pkeyopt paramset:A -nodes -keyout key.pem -out cert.pem -md_gost12_256
Результатом выполнения команды являются вопросы, ответы на которые будут внесены в сертификат.
В квадратных скобках указано, что поле пустое и его можно оставить незаполненным, для этого необходимо вместо ответа ввести символ ".".
Примерный вывод:
Generating a GOST2012_256 private key
writing new private key to 'key.pem'
-----
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
State or Province Name (full name) [Some-State]:Omsk
Locality Name (eg, city) []:City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CompanyExample
Organizational Unit Name (eg, section) []:Developers
Common Name (e.g. server FQDN or YOUR name) []:Ivan
Email Address []:ivan@company.ru
Для проверки созданного самозаверенного сертификата открыть терминал и ввести:
openssl x509 -in cert.pem -text -noout
Примерный вывод:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
3c:61:db:79:92:45:50:26:c2:93:74:87:0b:2d:6e:2a:7a:24:74:4c
Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
Issuer: C = RU, ST = Omsk, L = City, O = CompanyExample, OU = Developers, CN = Ivan, emailAddress = ivan@company.ru
Validity
Not Before: May 30 10:28:26 2023 GMT
Not After : Jun 29 10:28:26 2023 GMT
Subject: C = RU, ST = Omsk, L = City, O = CompanyExample, OU = Developers, CN = Ivan, emailAddress = ivan@company.ru
Subject Public Key Info:
Public Key Algorithm: GOST R 34.10-2012 with 256 bit modulus
Public key:
X:49B250AB12903AF5C712946C18AE61E5F588D3D38F66ECA7986AE50D2ABA7637
Y:1DDD4B76F2B2CE9F14850A58317F23C01A6285649CF8F2379987BE2926A49644
Parameter set: id-GostR3410-2001-CryptoPro-A-ParamSet
X509v3 extensions:
X509v3 Subject Key Identifier:
02:67:AA:06:FD:DD:1E:6B:9F:E2:C1:1C:FE:A3:2A:C6:FA:D6:D0:46
X509v3 Authority Key Identifier:
keyid:02:67:AA:06:FD:DD:1E:6B:9F:E2:C1:1C:FE:A3:2A:C6:FA:D6:D0:46
X509v3 Basic Constraints: critical
CA:TRUE
Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
91:48:e3:51:d4:62:2f:b9:91:2b:88:ae:87:83:2c:20:3a:da:
5d:46:28:79:a2:67:a8:29:34:1b:a2:c5:fd:f9:da:14:f3:1c:
05:8a:50:e3:1f:1e:d8:61:40:d1:d1:fb:3a:c0:35:ce:24:84:
6f:86:9f:fb:d4:1c:4a:ca:69:07
openssl req -new -sha256 -key test.example.ru.key -out test.example.ru.csr
Результатом выполнения команды являются вопросы, ответы на которые будут внесены в запрос на сертификат.
В квадратных скобках указано, что поле пустое и его можно оставить незаполненным, для этого необходимо вместо ответа ввести символ ".".
Примерный вывод:
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Omsk
Locality Name (eg, city) []:City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CompanyExample
Organizational Unit Name (eg, section) []:Developers
Common Name (e.g. server FQDN or YOUR name) []:Ivan
Email Address []:ivan@company.ru
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
Для получения хэш-функции согласно ГОСТ Р 34.11-2012 открыть терминал и ввести:
openssl dgst -engine gost -md_gost12_256 имя_файла
openssl dgst -engine gost -md_gost12_512 имя_файла
Примерный вывод:
engine "gost" set.
md_gost12_256(tes1t.example.ru.key)= a01e58ba6502849831c8317cea0b1fcf59e7c43477dc66fd76d17c6f3a486af3
openssl req -text -in test.example.ru.csr
Примерный вывод:
Certificate Request:
Data:
Version: 1 (0x0)
Subject: C = RU, ST = Omsk, L = City, O = CompanyExample, OU = Developers, CN = Ivan, emailAddress = ivan@company.ru
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:d4:50:cb:b3:54:4c:a9:81:b7:57:aa:d3:7d:3a:
d1:e1:03:37:7a:33:34:4d:fe:fe:57:11:1d:3c:ea:
3c:2a:53:9e:1f:3a:5c:bd:51:d6:23:23:ab:d2:e2:
64:03:44:0b:bd:bf:83:2c:8a:14:05:8a:7c:50:be:
45:11:e9:4c:71:b9:ba:45:f7:a5:77:18:5e:61:47:
d1:e1:03:37:7a:33:34:4d:fe:fe:57:11:1d:3c:ea:
b7:65:6c:ef:5b:f0:a4:b5:49:4c:f9:c2:4d:2d:d8:
d1:e1:03:37:7a:33:34:4d:fe:fe:57:11:1d:3c:ea:
53:04:71:fb:b0:77:28:10:01:39:a5:3c:59:7f:74:
e5:90:22:53:f1:4d:99:8c:9d:1e:e7:92:2b:e9:db:
d1:e1:03:37:7a:33:34:4d:fe:fe:57:11:1d:3c:ea:
40:e9:fd:14:aa:55:53:d3:f2:f3:ca:8a:6b:d4:48:
36:74:34:71:7c:8d:a7:de:2b:d2:b0:1f:3b:29:08:
54:ff:19:41:c2:9d:16:0d:2e:ca:c8:c8:e3:3b:c0:
d1:e1:03:37:7a:33:34:4d:fe:fe:57:11:1d:3c:ea:
d2:b1:10:2b:a6:f6:3e:0e:80:44:4e:5b:b6:28:78:
d5:b8:f4:7c:39:38:d9:1f:67:60:49:f7:a1:ba:9a:
b1:f1
Exponent: 65537 (0x10001)
Attributes:
a0:00
Requested Extensions:
Signature Algorithm: sha256WithRSAEncryption
7d:7a:3a:c1:b1:fc:84:fc:e9:6c:ff:c5:ba:b2:89:8a:75:28:
37:6f:10:4a:96:a0:00:a7:49:22:47:79:39:38:60:68:fb:a3:
d7:9d:30:b1:1c:db:64:f8:2e:a8:08:a2:14:80:c9:ac:76:7e:
5f:79:6c:a7:c9:74:a7:42:b3:9b:84:aa:4b:60:3a:d6:4a:9b:
37:6f:10:4a:96:a0:00:a7:49:22:47:79:39:38:60:68:fb:a3:
2e:74:01:3f:a0:40:1b:30:9f:5a:86:79:c6:7a:4c:39:bb:43:
23:b4:f6:65:6f:4e:7d:aa:82:4a:7a:df:02:cc:ba:4f:ec:b9:
37:6f:10:4a:96:a0:00:a7:49:22:47:79:39:38:60:68:fb:a3:
30:ad:5c:35:f3:b1:e4:29:a7:68:8b:f7:d7:2b:46:d3:7b:e8:
9d:cf:6f:dc:b3:e8:43:7b:19:fa:5f:a4:fa:40:bc:af:a7:5c:
37:6f:10:4a:96:a0:00:a7:49:22:47:79:39:38:60:68:fb:a3:
10:32:00:21:7b:6b:9e:bd:97:5d:fd:25:8f:79:fc:b5:a1:3e:
31:c7:04:fd:a0:41:87:08:b6:09:3d:d4:bd:55:08:b7:11:73:
26:9c:a0:a0:de:2e:04:25:69:41:ee:2a:b5:cc:6f:5b:55:c0:
2b:4a:e7:94
-----BEGIN CERTIFICATE REQUEST-----
MIICzjCCAbYCAQAwgYgxCzAJBgNVBAYTAlJVMQ0wCwYDVQQIDARPbXNrMQ0wCwYD
VQQHDARDaXR5MRcwFQYDVQQKDA5Db21wYW55RXhhbXBsZTETMBEGA1UECwwKRGV2
mJo0Dj25YSl9tCXZbNlTBHH7sHcoEAE5pTxZf3TlkCJT8U2ZjJ0e55Ir6dtASwlN
YW55LnJ1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1FDLs1RMqYG3
V6rTfTpJkd3nrUlr2tKeTSlVbLs8KlOeHzpcvVHWIyOr0uJkA0QLvb+DLIoUBYp8
UL5FEelMcbm6RfeldxheYUfq9+TRsQIHxLyibjXx5MW3ZWzvW/CktUlM+cJNLdjC
mJo0Dj25YSl9tCXZbNlTBHH7sHcoEAE5pTxZf3TlkCJT8U2ZjJ0e55Ir6dtASwlN
mJo0Dj25YSl9tCXZbNlTBHH7sHcoEAE5pTxZf3TlkCJT8U2ZjJ0e55Ir6dtASwlN
DS7KyMjjO8DR4QM3ejM0Tf7+VxEdPOrSsRArpvY+DoBETlu2KHjVuPR8OTjZH2dg
Sfehupqx8QIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAH16OsGx/IT86Wz/xbqy
iYp1KANYUHChPeKMZvTZHxibFWnoX9edMLEc22T4LqgIohSAyax2fl95bKfJdKdC
s5uEqktgOtZKmweegDA0c8iWRhQeIYZLu26ruC50AT+gQBswn1qGecZ6TDm7QyO0
mJo0Dj25YSl9tCXZbNlTBHH7sHcoEAE5pTxZf3TlkCJT8U2ZjJ0e55Ir6dtASwlN
RtN76J3Pb9yz6EN7GfpfpPpAvK+nXPpfLY9YE8T8ZAkLowewJe3OFRAyACF7a569
l139JY95/LWhPjHHBP2gQYcItgk91L1VCLcRcyacoKDeLgQlaUHuKrXMb1tVwCtK
55Q=
-----END CERTIFICATE REQUEST-----
Для гененрации 2048-битного RSA ключа и x509 сертификата с использованием конфигурационного файла следует создать файл test-ca.conf
в любом каталоге и открыть его используя текстовый редактор (например, nano):
nano test-ca.conf
В test-ca.conf
добавить содержимое:
[ req ]
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = v3_ca
[ req_distinguished_name ]
O = IMA-CA
CN = IMA/EVM certificate signing key
emailAddress = ca@ima-ca
[ v3_ca ]
basicConstraints=CA:TRUE
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
Для сохранения и выхода из текстового редактора nano использовать сочетание клавиш: CTRL + O > Ctrl + X.
Далее следует ввести команду для генерации ключа с использованием созданного конфигурационного файла:
openssl req -verbose -new -nodes -utf8 -sha1 -days 10000 -batch -x509 \
-config test-ca.conf \
-newkey rsa:2048 \
-out x509_evm.der -outform DER \
-keyout privkey_evm.pem
В результате выполнения команды будет создан приватный ключ "privkey_evm.pem" и публичный сертификат "x509_evm.der".
Оба файла следует расположить в каталог: /etc/keys
.
Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
openssl
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены. Если режим загрузки другой, то рекомендуется воспользоваться "Сохранением изменений".