Данное руководство предназначено для подготовки ключевых пар и сертификатов с помощью 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 4. При выполнении этой команды будет запрошен пароль и значения полей для добавления в запрос. Задайте пароль 123456 и любые значения полей. Ключевая пара будет сохранена в файле /privkey.pem. Запрос на сертификат будет отображён в консоли и в дальнейшем не понадобится.
5. Для генерации самоподписанного сертификата удостоверяющего центра выполните следующую команду:
openssl req -x509 -new -key /privkey.pem \-out [путь_к_файлу_сертификата.pem] -days 365 6. При выполнении этой команды будет запрошен пароль к закрытому ключу удостоверяющего центра. Введите пароль 123456.
Результат будет сохранён в файле сертификата удостоверяющего центра.
7. Для генерации ключевой пары и запроса на сертификат сервера выполните следующую команду:
openssl req -new -newkey gost2012_256 -pkeyopt paramset:A \-keyout [путь_к_файлу_ключевой_пары_сервера.key] \-out [путь_к_файлу_запроса.csr] 8. При выполнении этой команды будет запрошен пароль к закрытому ключу сервера и значения полей для добавления в запрос. Задайте пароль 123456 и любые значения полей.
9. Для издания сертификата сервера выполните следующую команду:
openssl x509 -req -in [путь_к_файлу_запроса.csr] \-CA [путь_к_файлу_сертификата_УЦ.pem] -CAkey /privkey.pem \-CAcreateserial -out [путь_к_файлу_server.pem] 10. При выполнении этой команды будет запрошен пароль к закрытому ключу удостоверяющего центра. Введите пароль 123456. Результат будет сохранён в файле server.pem.
11. Отредактируйте файл server.pem, добавив в его конец содержимое файла ключевой пары сервера.
12. Переименуйте файл privkey.pem в ca.pem.
13. Теперь вы можете использовать файлы ca.pem и server.pem вместо файлов с теми же именами, поставляемыми в комплекте JC-WebClient.
14. Проверьте себя.
Пример содержимого файла 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 сертификат удостоверяющего центра, но для данного примера это не критично.