Подготовка тестовых ключевых пар и сертификатов
Данное руководство предназначено для подготовки ключевых пар и сертификатов с помощью 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 = gostdynamic_path = gostdefault_algorithms = ALLCRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet3. Для генерации ключевой пары и запроса на сертификат удостоверяющего центра выполните следующую команду:openssl req -newkey gost2012_256 -pkeyopt paramset:A-
При выполнении этой команды будет запрошен пароль и значения полей для добавления в запрос. Задайте пароль
123456и любые значения полей. Ключевая пара будет сохранена в файле/privkey.pem. Запрос на сертификат будет отображён в консоли и в дальнейшем не понадобится. -
Для генерации самоподписанного сертификата удостоверяющего центра выполните следующую команду:
openssl req -x509 -new -key /privkey.pem \-out [путь_к_файлу_сертификата.pem] -days 3656. При выполнении этой команды будет запрошен пароль к закрытому ключу удостоверяющего центра. Введите пароль `123456`.Результат будет сохранён в файле сертификата удостоверяющего центра.
- Для генерации ключевой пары и запроса на сертификат сервера выполните следующую команду:
openssl req -new -newkey gost2012_256 -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-----MIIBjzCCAToCFDr8AUxvKiqeLDJNpqlyuj9RUoOzMAwGCCqFAwcBAQMCBQAwRTELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTA5MTcxMzMyMTZaFw0yNTEwMTcxMzMyMTZaMEUxCzAJBgNVBAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwZjAfBggqhQMHAQEBATATBgcqhQMCAiMBBggqhQMHAQECAgNDAARAH55yTZ/tT1zBJLPzxpGzOjZE9QKDJHuU0ZGWz8qAo89UjErJmnz2psE7uAyKDthH9Mt9hL+0ewj9FA1fQIi0azAMBggqhQMHAQEDAgUAA0EAbwX7Oqcao/YJbJoJI7U0Gi8gcakCKnisWHorum7uP/ua6QmtvCg4uIz5e5XdwUBfwYIpQ5drB1syHJ8uKiozCQ==-----END CERTIFICATE----------BEGIN ENCRYPTED PRIVATE KEY-----MIGiME4GCSqGSIb3DQEFDTBBMCkGCSqGSIb3DQEFDDAcBAgOp7RnRc5N8wICCAAwDAYIKoZIhvcNAgkFADAUBggqhkiG9w0DBwQIl6rLdnwKhwsEUGanHlnVyRieKZ2Yyvic+zLoo1Y6i0ft9DV0EGY2kqGPlhyhn06HaY6dDta062R449uHvZt2kfULrL82PznvQlJ2oV/lliUHzQ4tSmaOKHWp-----END ENCRYPTED PRIVATE KEY-----Пример содержимого файла ca.pem:
-----BEGIN ENCRYPTED PRIVATE KEY-----MIGiME4GCSqGSIb3DQEFDTBBMCkGCSqGSIb3DQEFDDAcBAhyrznEkVkZ4wICCAAwDAYIKoZIhvcNAgkFADAUBggqhkiG9w0DBwQITi+sBnCUcoAEUGP3yzrRyImh8QzIdaUgX5PpkZEIbXTTcYSqnB4GMH2/MzE8G+MquTyZbzIZRNRxKD+SZjGITMM35w0ZIqv3zEp2UwFMfPCLodef2jCd1IDa-----END ENCRYPTED PRIVATE KEY-----Можно по аналогии с файлом server.pem включить в файл ca.pem сертификат удостоверяющего центра, но для данного примера это не критично.

