Данное руководство предназначено для подготовки ключевых пар и сертификатов с помощью OpenSSL.
В рамках примера будет подготовлено два файла:
ca.pem
, содержащий закрытый ключ удостоверяющего центра.server.pem
, содержащий закрытый ключ и сертификат сервера.Выполните следующие шаги:
Установите OpenSSL с поддержкой GOST Engine.
Внесите в файл конфигурации OpenSSL изменения, описанные во входящем в
комплект OpenSSL файле engines\ccgost\README.gost
, в частности:
Перед первой секцией (идентификаторы секций обозначаются квадратными скобками) добавьте:
openssl_conf = openssl_def
Добавьте в файл конфигурации следующие секции:
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
dynamic_path = gost
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
Для генерации ключевой пары и запроса на сертификат удостоверяющего центра выполните следующую команду:
openssl req -newkey gost2001 -pkeyopt paramset:A
При выполнении этой команды будет запрошен пароль и значения полей для
добавления в запрос. Задайте пароль 123456
и любые значения полей.
Ключевая пара будет сохранена в файле /privkey.pem
. Запрос на
сертификат будет отображён в консоли и в дальнейшем не понадобится.
Для генерации самоподписанного сертификата удостоверяющего центра выполните следующую команду:
openssl req -x509 -new -key /privkey.pem \
-out [путь_к_файлу_сертификата.pem] -days 365
При выполнении этой команды будет запрошен пароль к закрытому ключу
удостоверяющего центра. Введите пароль 123456
.
Результат будет сохранён в файле сертификата удостоверяющего центра.
Для генерации ключевой пары и запроса на сертификат сервера выполните следующую команду:
openssl req -new -newkey gost2001 -pkeyopt paramset:A \
-keyout [путь_к_файлу_ключевой_пары_сервера.key] \
-out [путь_к_файлу_запроса.csr]
При выполнении этой команды будет запрошен пароль к закрытому ключу сервера
и значения полей для добавления в запрос. Задайте пароль 123456
и любые
значения полей.
Для издания сертификата сервера выполните следующую команду:
openssl x509 -req -in [путь_к_файлу_запроса.csr] \
-CA [путь_к_файлу_сертификата_УЦ.pem] -CAkey /privkey.pem \
-CAcreateserial -out [путь_к_файлу_server.pem]
При выполнении этой команды будет запрошен пароль к закрытому ключу
удостоверяющего центра. Введите пароль 123456
. Результат будет сохранён
в файле server.pem
.
Отредактируйте файл server.pem
, добавив в его конец содержимое файла
ключевой пары сервера.
Переименуйте файл privkey.pem
в ca.pem
.
Теперь вы можете использовать файлы ca.pem
и server.pem
вместо файлов с теми же именами, поставляемыми в комплекте JC-WebClient.
Проверьте себя.
Пример содержимого файла server.pem
:
-----BEGIN CERTIFICATE-----
MIIBfTCCASoCCQDGS0qiKF8OKTAKBgYqhQMCAgMFADBFMQswCQYDVQQGEwJSVTET
MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
dHkgTHRkMB4XDTEzMDEzMDEyMzkyN1oXDTEzMDMwMTEyMzkyN1owRTELMAkGA1UE
BhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdp
ZGdpdHMgUHR5IEx0ZDBjMBwGBiqFAwICEzASBgcqhQMCAiQABgcqhQMCAh4BA0MA
BEDHgQAkxQJ95kibeD8kuRGv17zTWWIkf2JhnRuyZ7OzTJQyeG3KaxZ1je4lVq+e
6+i38lUu33cVESIU9L6Mc2SyMAoGBiqFAwICAwUAA0EARj1I65tsiChYFM0thKlI
AZQ+YIh/OgUe7+QzVxVoQg9W8OT845us4GDo3WnQArmJIPa6PtSJxfQqz9NAXROK
sA==
-----END CERTIFICATE-----
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIGUMEAGCSqGSIb3DQEFDTAzMBsGCSqGSIb3DQEFDDAOBAh4XqCnZOBdCQICCAAw
FAYIKoZIhvcNAwcECGhYNP5cyMy1BFAKl4hAt8HUtmR8DjatIygwgSyD34qxAdJv
5S6r/3ICRZbDt7ALdO1fCvPM8rizSBuRX/Zp8t+470DmafgpK31vpB5Jd6GbwSNj
Kz5bupBSKQ==
-----END ENCRYPTED PRIVATE KEY-----
Пример содержимого файла ca.pem
:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIGUMEAGCSqGSIb3DQEFDTAzMBsGCSqGSIb3DQEFDDAOBAhQqtH6wbUZsQICCAAw
FAYIKoZIhvcNAwcECEkdaoXyvC16BFCW2HFRf8psb/tkUGq5w1IaipbHZnPOBgnK
C/GmKaCwYnUWdiL3z6eor3QpCMF3mnaVOjOqvMKS2JYiiMc5VuRq/E36qlUP/LgT
WO0lcxkSww==
-----END ENCRYPTED PRIVATE KEY-----
Примечание
Можно по аналогии с файлом server.pem
включить в файл
ca.pem
сертификат удостоверяющего центра, но для
данного примера это не критично.