криптопро pem сертификат

криптопро pem сертификат Электронная цифровая подпись

Для успешной установки и функционирования SSL сертификатов на различных платформах и устройствах, нередко их необходимо предоставить в разных форматах. Например, серверы Windows используют PFX файлы, для Apache серверов необходимы PEM файлы с расширением .crt или .cer. В этой статье мы поможем вам разобраться в следующих вопросах:

  • Какие бывают форматыSSL сертификатов?
  • Чем они отличаются?
  • Как конвертировать SSL сертификаты из одного формата в другой?

    Обновлено 09.03.2022

    Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами успешно настроили сеть на CentOS 7.6, двигаемся вперед. В сегодняшней публикации я вам хочу продемонстрировать, как вы можете выполнить экспорт сертификата или импорт сертификата из хранилища Windows. Уверен, что вы сами с легкостью можете найти кучу разных сценариев при которых вы можете использовать мою инструкцию.

    Обновлено 06.07.2022

    pfx to pem

    Добрый день уважаемые читатели, в прошлый раз я вам рассказывал, о том, что такое csr запрос и мы его генерировали на IIS сервере, далее нам его нужно было передать в удостоверяющий центр для выпуска основного сертификата сервера, мы выбрали для этих целей сертификат comodo на 3 года от компании Emaro. Все замечательно, сертификат прислали, но есть одно но, когда вы попытаетесь импортировать сертификат в формате crt в IIS сервере, то получите предложение, только на импорт pfx формата, и если его не, то ошибку, что сертификат не содержит закрытого ключа. Давайте смотреть как это решить.

    Обновлено 11.09.2018

    Добрый день! Уважаемые читатели и гости крупнейшего IT блога в России pyatilistnik.org. В прошлый раз мы разбирали ситуацию, что утилита КриптоПРО не видела токен Jacarta, согласитесь, что при решении этой проблемы было бы здорово иметь тестовый ключ с сертификатом, и параллельно ваш коллега мог бы тоже траблшутить. Еще тестовый сертификат CryptoPRO может быть полезен, при процедуре переноса контейнера КриптоПРО из реестра в случае с не экспортируемым закрытым ключом. Сегодня я вас научу генерировать нормальный, тестовый сертификат шифрования или подписи для разных задачу.

    Читайте также:  Схема постквантовой электронной цифровой подписи на основе усиленной формы скрытой задачи дискретного логарифмирования – тема научной статьи по математике читайте бесплатно текст научно-исследовательской работы в электронной библиотеке КиберЛенинка


    Offline

    lifayk

     

    Оставлено
    :

    14 августа 2021 г. 14:33:58(UTC)

    Здравствуйте.

    Пытаюсь сгенерировать и загрузить пару RSA+сертификат в КриптоПРО 4.
    Получаю ошибку:
    Invalid flags specified.
    [ErrorCode: 0x80090009]

    Подскажите, пожалуйста, что я делаю не так?

    Код:

    $ ./test.sh
    + dpkg -l
    + grep cpro
    ii cprocsp-cpopenssl-64 4.0.9963-5 amd64 OpenSSL. Build 9963.
    ii cprocsp-cpopenssl-base 4.0.9963-5 all Openssl common Build 9963.
    ii cprocsp-cpopenssl-devel 4.0.9963-5 all Openssl devel Build 9963.
    ii cprocsp-curl-64 4.0.9963-5 amd64 CryptoPro Curl shared library and binaris. Build 9963.
    ii cprocsp-rsa-64 4.0.9963-5 amd64 CryptoPro RSA CSP. Build 9963.
    ii cprocsp-stunnel-64 4.0.9963-5 amd64 Universal SSL/TLS tunnel.
    ii lsb-cprocsp-base 4.0.9963-5 all CryptoPro CSP directories and scripts. Build 9963.
    ii lsb-cprocsp-ca-certs 4.0.9963-5 all CA certificates. Build 9963.
    ii lsb-cprocsp-capilite-64 4.0.9963-5 amd64 CryptoAPI lite. Build 9963.
    ii lsb-cprocsp-kc1-64 4.0.9963-5 amd64 CryptoPro CSP KC1. Build 9963.
    ii lsb-cprocsp-rdr-64 4.0.9963-5 amd64 CryptoPro CSP readers. Build 9963.
    + /opt/cprocsp/cp-openssl/bin/amd64/openssl version
    OpenSSL 1.0.2k 26 Jan 2017
    + /opt/cprocsp/cp-openssl/bin/amd64/openssl req -x509 -newkey rsa:1024 -keyout key.pem -out cert.pem -days 365 -nodes -subj /C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=www.example.com
    Generating a 1024 bit RSA private key
    ..............++++++
    ........++++++
    writing new private key to 'key.pem'
    -----
    + /opt/cprocsp/cp-openssl/bin/amd64/openssl pkcs12 -export -inkey key.pem -in cert.pem -out testpfx.pfx -nodes -passout pass:123
    + /opt/cprocsp/cp-openssl/bin/amd64/openssl pkcs12 -info -in testpfx.pfx -noout -passin pass:123
    MAC Iteration 2048
    MAC verified OK
    PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
    Certificate bag
    PKCS7 Data
    Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
    + /opt/cprocsp/bin/amd64/certmgr -inst -pfx -file testpfx.pfx -pin 123
    Certmgr 1.1 (c) "Crypto-Pro", 2007-2018.
    program for managing certificates, CRLs and stores
    Error while importing pfx
    Invalid flags specified.
    [ErrorCode: 0x80090009]
    + tail -3 /var/log/syslog
    Aug 14 14:30:01 farm1 certmgr: capi20: pfx_ImportPrivateKey () pfx - pfx_PasswordDeriveEncryptKeyFromAlgIdentifier failed
    Aug 14 14:30:01 farm1 certmgr: capi20: pfx_CreatePrivateKeyContext () pfx - pfx_ImportPrivateKey failed
    Aug 14 14:30:01 farm1 certmgr: capi20: PFXImportCertStore () pfx - pfx_CreatePrivateKeyContext failed


    Offline

    Андрей Русев

     

    Оставлено
    :

    27 августа 2021 г. 21:00:47(UTC)

    Здравствуйте.
    В КриптоПро CSP 4.0 крайне ограниченная поддержка RSA. Попробуйте КриптоПро CSP 5.0 R2 Kraken (build 5.0.12000).

    Содержание
    1. Gost PEM Extractor
    2. Требования для работы
    3. Для экспорта из ViPNet CSP:
    4. Для экспорта из КриптоПро CSP:
    5. Сборка
    6. Запуск
    7. Описание проблемы для конвертации. pem
    8. Лучшее решение
    9. Возможные решения
    10. примечания
    11. пример
    12. Импорт сертификата в Windows
    13. Формат сертификата PEM
    14. Формат сертификата DER
    15. PKCS # 7 / P7B сертификат
    16. PFX сертификат (формат PKCS # 12)
    17. Онлайн конвертер SSL сертификатов
    18. Конвертация PEM в DER
    19. Конвертация PEM в P7B / PKCS#7
    20. Конвертация PEM в PFX / PKCS#12
    21. Конвертация PFX / PKCS#12 в PEM
    22. Как получить PFX ключ на IIS
    23. Установка OpenSSL для Windows
    24. Преобразование PFX в PEM
    25. Преобразование PEM в KEY
    26. Получаем PFX ключ для импорта в IIS
    27. Конвертация SSL сертификатов в OpenSSL
    28. Генерация тестового сертификата
    29. Установка КриптоПро ЭЦП Browser plug-in.
    30. Примеры сценариев при импорте и экспорте сертификата
    31. Что делать если нет сертификата в запросах заявок на сертификат
    32. Преобразование p7b в pem
    33. Преобразование CRT в PEM
    34. Для чего нужно преобразование сертификатов
    35. Экспорт сертификата Windows
    36. Как создать. ca-bundle

    Gost PEM Extractor

    Основано на Privkey2012

    Требования для работы

    При экспорте из ViPNet CSP достаточно PFX с включенным в него приватным ключом.

    При экспорте из КриптоПро CSP нужен PFX (не обязательно с ключом) и ключ (хранилище).

    Хранилище это директория с файлами:

    header.key
    masks.key
    masks2.key
    name.key
    primary.key
    primary2.key

    Для экспорта из ViPNet CSP:

    1. В окне «ViPNet CSP» в разделе «Контейнеры ключей» выберите контейнер ключей, содержащий сертификат или сертификат и закрытый ключ, которые вы хотите экспортировать. Нажмите кнопку «Свойства» либо дважды щелкните нужный контейнер ключей.
    2. В окне «Свойства контейнера ключей» нажмите кнопку «Открыть».
    3. В окне «Сертификат» перейдите на вкладку «Состав» и нажмите кнопку «Копировать в файл».
    4. На странице приветствия мастера экспорта сертификатов нажмите кнопку «Далее».
    5. На странице «Экспортирование закрытого ключа» укажите, что хотите вместе с сертификатом экспортировать закрытый ключ.
    6. На странице «Формат экспортируемого файла» выберите формат PKCS #12 (.PFX).
    7. На странице «Пароль» задайте и подтвердите пароль доступа к экспортируемому закрытому ключу.
    8. На странице «Имя файла экспорта» укажите диреткторию, в которой вы хотите создать файл с экспортируемыми ключами, и задайте имя этого файла.
    9. На странице завершения работы мастера экспорта сертификатов нажмите кнопку «Готово».

    Для экспорта из КриптоПро CSP:

    1. Перейти в Панель управления (ПУСК – Панель управления) найдите и запустить КриптоПро CSP.
    2. На вкладке сервис выбрать «Просмотреть сертификат в контейнере».
    3. Выбрать нужный контейнер и нажать «Далее». Если в контейнере присутствует сертификат, то отобразится информация о нём.
    4. Нажать «Свойства». Откроется сам сертификат.
    5. Перейти на вкладку «Состав». Нажать кнопку «Копировать в файл».
    6. Выбрать варианты: «Нет, не экспортировать закрытый ключ» и «Файл в DER-кодировке X509» (.CER)
    7. Указать путь для сохранения файла сертификата.
    8. На вкладке сервис выбрать «Скопировать».
    9. Выбрать нужный контейнер и нажать «Далее» и следуя мастеру, скопировать ключ на съемный носитель.

    Сборка

    docker build -t zazmaster/gostpemextractor ./

    Запуск

    Файл certificate.pfx и диреткория storage.001 находятся в текущей директории. При успехе в текущей директории создаются два файла certificate.crt.pem и certificate.key.pem
    Пример при наличии pfx файла и хранилища закрытого ключа:

    docker run --rm -ti -v `pwd`:/work zazmaster/gostpemextractor -f certificate.pfx -p password -s storage.001

    Пример при наличии только pfx файла с включенным в него приватным ключом:

    docker run --rm -ti -v `pwd`:/work zazmaster/gostpemextractor -f certificate.pfx -p password 

    Пример команды для Windows:

    docker run --rm -ti -v C:\temp\cert\1231:/work zazmaster/gostpemextractor -f certificate.pfx -p password -s storage.001


    Offline

    kuvschin

     

    Оставлено
    :

    29 марта 2022 г. 16:28:46(UTC)

    Подскажите пожалуйста как получить папку (например, “MySite.001”), содержающую файлы header.key, masks.key, masks2.key, name.key, primary.key, primary2.key – из файлов .key + .crt?
    Есть сертификат с контейнером от минцифры сгенерированные openssl. Нужно чтобы их можно было использовать с криптопро.
    Пробовал конвертировать в .PFX и импортировать виндой 10 и криптопро 5. В винде просто ложится куда-то в винду минуя криптопро и не отображаясь в списке контейнеров. В криптопро выдаёт ошибку записи в контейнер и снова ложится в винду минуя криптопро.


    Offline

    Александр Лавник

     

    Оставлено
    :

    29 марта 2022 г. 19:43:45(UTC)

    Автор: kuvschin Перейти к цитате

    Подскажите пожалуйста как получить папку (например, “MySite.001”), содержающую файлы header.key, masks.key, masks2.key, name.key, primary.key, primary2.key – из файлов .key + .crt?
    Есть сертификат с контейнером от минцифры сгенерированные openssl. Нужно чтобы их можно было использовать с криптопро.
    Пробовал конвертировать в .PFX и импортировать виндой 10 и криптопро 5. В винде просто ложится куда-то в винду минуя криптопро и не отображаясь в списке контейнеров. В криптопро выдаёт ошибку записи в контейнер и снова ложится в винду минуя криптопро.

    Попробуйте так:

    Код:

    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89


    Offline

    kuvschin

     

    Оставлено
    :

    29 марта 2022 г. 21:18:09(UTC)

    Доброго.
    У меня не cer а crt, вот что получилось

    X:\1>”C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -export -out bsoinsuronline.pfx -inkey bsoinsuronline.key -in bsoinsuronline.crt -keypbe gost89
    Enter Export Password:
    Verifying – Enter Export Password:
    Error creating PKCS12 structure for bsoinsuronline.pfx
    14200000:error:03000079:digital envelope routines:EVP_PBE_CipherInit_ex:unknown pbe algorithm:crypto\evp\evp_pbe.c:109:TYPE=GOST 28147-89
    14200000:error:11800067:PKCS12 routines:PKCS12_item_i2d_encrypt_ex:encrypt error:crypto\pkcs12\p12_decr.c:191:
    14200000:error:11800067:PKCS12 routines:PKCS8_set0_pbe_ex:encrypt error:crypto\pkcs12\p12_p8e.c:80:

    X:\1>


    Offline

    Андрей *

     

    Оставлено
    :

    29 марта 2022 г. 22:40:27(UTC)


    Offline

    kuvschin

     

    Оставлено
    :

    29 марта 2022 г. 23:15:24(UTC)

    OpenSSL-Win64
    криптопро pem сертификат Screenshot_2.jpg (98kb) загружен 16 раз(а).


    Offline

    kuvschin

     

    Оставлено
    :

    31 марта 2022 г. 14:07:02(UTC)

    Господа, что за тишина, вас оскорбила моя версия опенссл?


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 17:10:09(UTC)

    Люди, помогите пожалуйста.


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 19:40:16(UTC)

    Код:

    openssl pkcs12 -engine gost -export -inkey prk.pem -in crt.pem -out pfx.pfx -password pass:123 -keypbe gost89 -certpbe gost89 -macalg md_gost12_256
    p12util.x86.exe -p12tocp -rdrfolder .\123 -contname mycont -ex -passp12 123 -infile .\pfx.pfx -noMACVerify -noCPKM


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 20:11:04(UTC)

    Доброго .pem у меня нет файлов с таким расширением, только .key и .crt

    Первая строка:

    C:\Users\CO09-3>x:

    X:\>cd 1

    X:\1>”C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -engine gost -export -inkey bsoinsuronline.key -in bsoinsuronline.crt -out pfx.pfx -password pass:123 -keypbe gost89 -certpbe gost89 -macalg md_gost12_256
    Invalid engine “gost”
    18690000:error:12800067:DSO support routines:win32_load:could not load the shared library:crypto\dso\dso_win32.c:108:filename(C:\Program Files\OpenSSL\lib\engines-3\gost.dll)
    18690000:error:12800067:DSO support routines:DSO_load:could not load the shared library:crypto\dso\dso_lib.c:152:
    18690000:error:13000084:engine routines:dynamic_load:dso not found:crypto\engine\eng_dyn.c:422:
    18690000:error:13000074:engine routines:ENGINE_by_id:no such engine:crypto\engine\eng_list.c:430:id=gost
    18690000:error:12800067:DSO support routines:win32_load:could not load the shared library:crypto\dso\dso_win32.c:108:filename(gost.dll)
    18690000:error:12800067:DSO support routines:DSO_load:could not load the shared library:crypto\dso\dso_lib.c:152:
    18690000:error:13000084:engine routines:dynamic_load:dso not found:crypto\engine\eng_dyn.c:422:
    Error creating PKCS12 structure for pfx.pfx
    18690000:error:03000079:digital envelope routines:EVP_PBE_CipherInit_ex:unknown pbe algorithm:crypto\evp\evp_pbe.c:109:TYPE=GOST 28147-89
    18690000:error:11800067:PKCS12 routines:PKCS12_item_i2d_encrypt_ex:encrypt error:crypto\pkcs12\p12_decr.c:191:
    18690000:error:11800067:PKCS12 routines:PKCS12_pack_p7encdata_ex:encrypt error:crypto\pkcs12\p12_add.c:127:

    X:\1>

    До второй не дошло т.к. первая не сработала, да и нет у меня такого файла p12util.x86.exe


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 20:46:41(UTC)

    Так, в сертификате какой алгоритм указан? Чтобы узнать, надо дважды кликнуть по сертификату, и в открывшемся окне выбрать вкладку “Состав”. Нужные поля называются: “Алгоритм подписи” и “Хэш-алгоритм подписи”.

    Отредактировано пользователем 1 апреля 2022 г. 20:47:30(UTC)
     | Причина: Не указана


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 21:10:35(UTC)

    sha256RSA
    sha256криптопро pem сертификат Screenshot_1.jpg (18kb) загружен 5 раз(а).


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 21:42:09(UTC)

    Тааааак…… А зачем вам КриптоПро для этого, если у вас RSA-шный серт?


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 22:01:04(UTC)

    Ну как – эта хрень позволяет серверу себя удостоверить, я прикручу её к авторизации стуннель. Только мне надо чтобы оно в контейнере криптопро жило:)


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 22:14:36(UTC)

    Мне даже интересно стало – а что вам раньше выдавало минцифры? Гостовые серты что-ли?

    Отредактировано пользователем 1 апреля 2022 г. 22:15:16(UTC)
     | Причина: Не указана


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 22:29:06(UTC)

    Это выдано впервые, раньше ничего не выдавало минцифры.
    Так получится у нас или я не в ту степь полез?
    Просто я не разбираюсь в вопросе, уже много прочёл но в общем стало только хуже с пониманием:(


    Offline

    Андрей *

     

    Оставлено
    :

    1 апреля 2022 г. 23:10:08(UTC)

    Автор: kuvschin Перейти к цитате

    Это выдано впервые, раньше ничего не выдавало минцифры.
    Так получится у нас или я не в ту степь полез?
    Просто я не разбираюсь в вопросе, уже много прочёл но в общем стало только хуже с пониманием:(

    Ключ RSA,
    gost зачем указывается в параметрах?


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 23:47:32(UTC)

    Мне так выше сказали сделать:

    Попробуйте так:
    Код:
    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 23:59:36(UTC)

    Автор: kuvschin Перейти к цитате

    Мне так выше сказали сделать:

    Попробуйте так:
    Код:
    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89

    Честно сказать, когда писал – не знал, что у вас rsa. Ранее же нигде вы об этом публично не заявляли вроде как…

    Удалите из команды все параметры, связанные с ГОСТ-ом.

    Отредактировано пользователем 2 апреля 2022 г. 0:10:16(UTC)
     | Причина: Не указана


    Offline

    kuvschin

     

    Оставлено
    :

    2 апреля 2022 г. 0:43:27(UTC)

    Автор: TolikTipaTut1 Перейти к цитате

    Автор: kuvschin Перейти к цитате

    Мне так выше сказали сделать:

    Попробуйте так:
    Код:
    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89

    Честно сказать, когда писал – не знал, что у вас rsa. Ранее же нигде вы об этом публично не заявляли вроде как…

    Удалите из команды все параметры, связанные с ГОСТ-ом.

    “C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -export -out bsoinsurru.pfx -inkey bsoinsurru.key -in bsoinsurru.crt
    И ничего не выйдет, т.к. этой командой я сам делал и pfx генерился и пароль норм, только вот это дерьмо ведёт себя так как я и описал в стартовом сообщении – “Пробовал конвертировать в .PFX и импортировать виндой 10 и криптопро 5. В винде просто ложится куда-то в винду минуя криптопро и не отображаясь в списке контейнеров. В криптопро выдаёт ошибку записи в контейнер и снова ложится в винду минуя криптопро.”

    В том-то и вся беда, что мы зашли на круг.


    Offline

    Андрей *

     

    Оставлено
    :

    2 апреля 2022 г. 8:28:24(UTC)

    И зачем нужно, чтобы было в КриптоПро csp? (подразумевая реализацию с RSA)

    Конечная цель, чтобы приложение по сертификату получило доступ к ЗК. Проверили?


    Offline

    kuvschin

     

    Оставлено
    :

    29 марта 2022 г. 16:28:46(UTC)

    Подскажите пожалуйста как получить папку (например, “MySite.001”), содержающую файлы header.key, masks.key, masks2.key, name.key, primary.key, primary2.key – из файлов .key + .crt?
    Есть сертификат с контейнером от минцифры сгенерированные openssl. Нужно чтобы их можно было использовать с криптопро.
    Пробовал конвертировать в .PFX и импортировать виндой 10 и криптопро 5. В винде просто ложится куда-то в винду минуя криптопро и не отображаясь в списке контейнеров. В криптопро выдаёт ошибку записи в контейнер и снова ложится в винду минуя криптопро.


    Offline

    Александр Лавник

     

    Оставлено
    :

    29 марта 2022 г. 19:43:45(UTC)

    Автор: kuvschin Перейти к цитате

    Подскажите пожалуйста как получить папку (например, “MySite.001”), содержающую файлы header.key, masks.key, masks2.key, name.key, primary.key, primary2.key – из файлов .key + .crt?
    Есть сертификат с контейнером от минцифры сгенерированные openssl. Нужно чтобы их можно было использовать с криптопро.
    Пробовал конвертировать в .PFX и импортировать виндой 10 и криптопро 5. В винде просто ложится куда-то в винду минуя криптопро и не отображаясь в списке контейнеров. В криптопро выдаёт ошибку записи в контейнер и снова ложится в винду минуя криптопро.

    Попробуйте так:

    Код:

    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89


    Offline

    kuvschin

     

    Оставлено
    :

    29 марта 2022 г. 21:18:09(UTC)

    Доброго.
    У меня не cer а crt, вот что получилось

    X:\1>”C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -export -out bsoinsuronline.pfx -inkey bsoinsuronline.key -in bsoinsuronline.crt -keypbe gost89
    Enter Export Password:
    Verifying – Enter Export Password:
    Error creating PKCS12 structure for bsoinsuronline.pfx
    14200000:error:03000079:digital envelope routines:EVP_PBE_CipherInit_ex:unknown pbe algorithm:crypto\evp\evp_pbe.c:109:TYPE=GOST 28147-89
    14200000:error:11800067:PKCS12 routines:PKCS12_item_i2d_encrypt_ex:encrypt error:crypto\pkcs12\p12_decr.c:191:
    14200000:error:11800067:PKCS12 routines:PKCS8_set0_pbe_ex:encrypt error:crypto\pkcs12\p12_p8e.c:80:

    X:\1>


    Offline

    Андрей *

     

    Оставлено
    :

    29 марта 2022 г. 22:40:27(UTC)


    Offline

    kuvschin

     

    Оставлено
    :

    29 марта 2022 г. 23:15:24(UTC)

    OpenSSL-Win64
    криптопро pem сертификат Screenshot_2.jpg (98kb) загружен 16 раз(а).


    Offline

    kuvschin

     

    Оставлено
    :

    31 марта 2022 г. 14:07:02(UTC)

    Господа, что за тишина, вас оскорбила моя версия опенссл?


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 17:10:09(UTC)

    Люди, помогите пожалуйста.


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 19:40:16(UTC)

    Код:

    openssl pkcs12 -engine gost -export -inkey prk.pem -in crt.pem -out pfx.pfx -password pass:123 -keypbe gost89 -certpbe gost89 -macalg md_gost12_256
    p12util.x86.exe -p12tocp -rdrfolder .\123 -contname mycont -ex -passp12 123 -infile .\pfx.pfx -noMACVerify -noCPKM


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 20:11:04(UTC)

    Доброго .pem у меня нет файлов с таким расширением, только .key и .crt

    Первая строка:

    C:\Users\CO09-3>x:

    X:\>cd 1

    X:\1>”C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -engine gost -export -inkey bsoinsuronline.key -in bsoinsuronline.crt -out pfx.pfx -password pass:123 -keypbe gost89 -certpbe gost89 -macalg md_gost12_256
    Invalid engine “gost”
    18690000:error:12800067:DSO support routines:win32_load:could not load the shared library:crypto\dso\dso_win32.c:108:filename(C:\Program Files\OpenSSL\lib\engines-3\gost.dll)
    18690000:error:12800067:DSO support routines:DSO_load:could not load the shared library:crypto\dso\dso_lib.c:152:
    18690000:error:13000084:engine routines:dynamic_load:dso not found:crypto\engine\eng_dyn.c:422:
    18690000:error:13000074:engine routines:ENGINE_by_id:no such engine:crypto\engine\eng_list.c:430:id=gost
    18690000:error:12800067:DSO support routines:win32_load:could not load the shared library:crypto\dso\dso_win32.c:108:filename(gost.dll)
    18690000:error:12800067:DSO support routines:DSO_load:could not load the shared library:crypto\dso\dso_lib.c:152:
    18690000:error:13000084:engine routines:dynamic_load:dso not found:crypto\engine\eng_dyn.c:422:
    Error creating PKCS12 structure for pfx.pfx
    18690000:error:03000079:digital envelope routines:EVP_PBE_CipherInit_ex:unknown pbe algorithm:crypto\evp\evp_pbe.c:109:TYPE=GOST 28147-89
    18690000:error:11800067:PKCS12 routines:PKCS12_item_i2d_encrypt_ex:encrypt error:crypto\pkcs12\p12_decr.c:191:
    18690000:error:11800067:PKCS12 routines:PKCS12_pack_p7encdata_ex:encrypt error:crypto\pkcs12\p12_add.c:127:

    X:\1>

    До второй не дошло т.к. первая не сработала, да и нет у меня такого файла p12util.x86.exe


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 20:46:41(UTC)

    Так, в сертификате какой алгоритм указан? Чтобы узнать, надо дважды кликнуть по сертификату, и в открывшемся окне выбрать вкладку “Состав”. Нужные поля называются: “Алгоритм подписи” и “Хэш-алгоритм подписи”.

    Отредактировано пользователем 1 апреля 2022 г. 20:47:30(UTC)
     | Причина: Не указана


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 21:10:35(UTC)

    sha256RSA
    sha256криптопро pem сертификат Screenshot_1.jpg (18kb) загружен 5 раз(а).


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 21:42:09(UTC)

    Тааааак…… А зачем вам КриптоПро для этого, если у вас RSA-шный серт?


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 22:01:04(UTC)

    Ну как – эта хрень позволяет серверу себя удостоверить, я прикручу её к авторизации стуннель. Только мне надо чтобы оно в контейнере криптопро жило:)


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 22:14:36(UTC)

    Мне даже интересно стало – а что вам раньше выдавало минцифры? Гостовые серты что-ли?

    Отредактировано пользователем 1 апреля 2022 г. 22:15:16(UTC)
     | Причина: Не указана


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 22:29:06(UTC)

    Это выдано впервые, раньше ничего не выдавало минцифры.
    Так получится у нас или я не в ту степь полез?
    Просто я не разбираюсь в вопросе, уже много прочёл но в общем стало только хуже с пониманием:(


    Offline

    Андрей *

     

    Оставлено
    :

    1 апреля 2022 г. 23:10:08(UTC)

    Автор: kuvschin Перейти к цитате

    Это выдано впервые, раньше ничего не выдавало минцифры.
    Так получится у нас или я не в ту степь полез?
    Просто я не разбираюсь в вопросе, уже много прочёл но в общем стало только хуже с пониманием:(

    Ключ RSA,
    gost зачем указывается в параметрах?


    Offline

    kuvschin

     

    Оставлено
    :

    1 апреля 2022 г. 23:47:32(UTC)

    Мне так выше сказали сделать:

    Попробуйте так:
    Код:
    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89


    Offline

    TolikTipaTut1

     

    Оставлено
    :

    1 апреля 2022 г. 23:59:36(UTC)

    Автор: kuvschin Перейти к цитате

    Мне так выше сказали сделать:

    Попробуйте так:
    Код:
    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89

    Честно сказать, когда писал – не знал, что у вас rsa. Ранее же нигде вы об этом публично не заявляли вроде как…

    Удалите из команды все параметры, связанные с ГОСТ-ом.

    Отредактировано пользователем 2 апреля 2022 г. 0:10:16(UTC)
     | Причина: Не указана


    Offline

    kuvschin

     

    Оставлено
    :

    2 апреля 2022 г. 0:43:27(UTC)

    Автор: TolikTipaTut1 Перейти к цитате

    Автор: kuvschin Перейти к цитате

    Мне так выше сказали сделать:

    Попробуйте так:
    Код:
    openssl pkcs12 -export -out gost.pfx -inkey gost.key -in gost.cer -keypbe gost89

    Честно сказать, когда писал – не знал, что у вас rsa. Ранее же нигде вы об этом публично не заявляли вроде как…

    Удалите из команды все параметры, связанные с ГОСТ-ом.

    “C:\Program Files\OpenSSL-Win64\bin\openssl.exe” pkcs12 -export -out bsoinsurru.pfx -inkey bsoinsurru.key -in bsoinsurru.crt
    И ничего не выйдет, т.к. этой командой я сам делал и pfx генерился и пароль норм, только вот это дерьмо ведёт себя так как я и описал в стартовом сообщении – “Пробовал конвертировать в .PFX и импортировать виндой 10 и криптопро 5. В винде просто ложится куда-то в винду минуя криптопро и не отображаясь в списке контейнеров. В криптопро выдаёт ошибку записи в контейнер и снова ложится в винду минуя криптопро.”

    В том-то и вся беда, что мы зашли на круг.


    Offline

    Андрей *

     

    Оставлено
    :

    2 апреля 2022 г. 8:28:24(UTC)

    И зачем нужно, чтобы было в КриптоПро csp? (подразумевая реализацию с RSA)

    Конечная цель, чтобы приложение по сертификату получило доступ к ЗК. Проверили?

    Описание проблемы для конвертации. pem

    от.pemИзвлечь / конвертировать сертификат.crtИ закрытый ключ.keyКаков правильный метод или команда для файла? Я знаю, что они конвертируемые, но я не знаю, как это сделать.

    Лучшее решение

    Вы можете конвертировать pem в crt используя:

    openssl x509 -outform der -in your-cert.pem -out your-cert.crt

    Возможные решения

    Преобразование с использованием OpenSSL

    Следующая команда позволяет преобразовывать сертификаты и ключи в различные форматы, делая их совместимыми с определенными типами серверов или программного обеспечения.

    • волиDERФайл (.crt .cer .der) ВPEM
    openssl x509 -inform der -in certificate.cer -out certificate.pem
    • волиPEMФайлы преобразованы вDER
    openssl x509 -outform der -in certificate.pem -out certificate.der
    • Будет содержать закрытый ключ и сертификатPKCS#12Файл (.pfx .p12) ВPEM
    openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

    You can add -nocerts to only output the private key or add -nokeys to only output the certificates.

    • волиPEMФайл сертификата и закрытый ключ преобразуются вPKCS#12(.pfx .p12)
    openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
    • волиPEMПеревести наCRT (файл .CRT)
    openssl x509 -outform der -in certificate.pem -out certificate.crt
    OpenSSL для PEM
    • волиPEMПеревести наDER
    openssl x509 -outform der -in certificate.pem -out certificate.der
    • волиPEMПеревести наP7B
    openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
    • волиPEMПеревести наPFX
    openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
    OpenSSLизменениеDER
    • волиDERПеревести наPEM
    openssl x509 -inform der -in certificate.cer -out certificate.pem
    OpenSSLизменениеP7B
    • волиP7BПеревести наPEM
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    • волиP7BПеревести наPFX
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
    OpenSSLизменениеPFX
    • волиPFXПеревести наPEM
    openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
    поOpenSSLгенерироватьrsaключ
    • Использовать в командной строкеOpenSSL, Сначала нужно сгенерировать открытый и закрытый ключи, вы должны использовать-passoutПараметр password защищает этот файл. Этот параметр может принимать различные формы, см.OpenSSLДокументы.
      openssl genrsa -out private.pem 1024
    • Это создаст файл ключа с именем private.pem, который использует 1024 бита. Файл фактически имеет как закрытый ключ, так и открытый ключ, и открытый ключ можно извлечь из файла:
    openssl rsa -in private.pem -out public.pem -outform PEM -pubout

    or

    openssl rsa -in private.pem -pubout > public.pem

    or

    openssl rsa -in private.pem -pubout -out public.pem

    Теперь вашpublic.pemСодержит только открытый ключ, который может свободно передаваться третьим лицам. Вы можете проверить это, зашифровав свои данные с помощью открытого ключа, а затем расшифровав его с помощью закрытого ключа. Сначала нам понадобятся некоторые данные для шифрования:

    • Пример файла:
    echo 'too many secrets' > file.txt

    Сейчас вfile.txtВ нем есть некоторые данные, которые вы можете использоватьOpenSSLИ шифрование с открытым ключом:

    openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
    • Это создаст зашифрованную версиюfile.txtИ закажите этот файл какfile.ssl(Если вы откроете этот файл напрямую, чтобы просмотреть его, то он выглядит как двоичный мусор и не может быть понят человеком). Затем его можно расшифровать с помощью закрытого ключа:
    openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
    • Сейчас вdecryptpted.txtСуществует незашифрованный файл в:
    cat decrypted.txt
    |output -> too many secrets
    OpenSSLRSAВарианты инструмента
    • Название: инструмент обработки ключей RSA-RSA

    • Описание: rsaОбработка командRSAКлюч. Они могут конвертировать различные формы и распечатывать свои компоненты. Обратите внимание, что эта команда использует традиционныеSSLeayШифрование закрытым ключом в совместимом формате: новые приложения должны использоватьpkcs8Утилиты более безопасныPKCS#8Формат.

    примечания

    • Формат закрытого ключа PEM использует следующие строки верхнего и нижнего колонтитула:
    -----BEGIN RSA PRIVATE KEY-----
    -----END RSA PRIVATE KEY-----
    • Формат открытого ключа PEM использует следующие строки верхнего и нижнего колонтитула:
    -----BEGIN PUBLIC KEY-----
    -----END PUBLIC KEY-----
    • Формат PEM RSAPublicKey использует следующие строки верхнего и нижнего колонтитула:
    -----BEGIN RSA PUBLIC KEY-----
    -----END RSA PUBLIC KEY-----

    NETФормат такой же как старыйNetscapeСервер иMicrosoft IIS .keyФайл совместимый формат, который использует незашифрованныйRC4Зашифрованные. Этот метод не очень безопасен, поэтому используйте его только при необходимости. Некоторые более новые версииIISВ экспортируемом.keyВ файле есть другие дополнительные данные. Чтобы использовать эти утилиты, используйте бинарный редактор для просмотра файлов и поиска строк”private-key”А затем вернемся к последовательности байтов0x30,0x82(ЭтоASN1 SEQUENCE). Скопируйте все данные из этой точки в другой файл и используйте его как-inform NETопцииrsaСервисный ввод.

    пример

    • Чтобы удалить фразу-пароль для закрытого ключа RSA:
     openssl rsa -in key.pem -out keyout.pem
    • Зашифруйте закрытый ключ с помощью тройного DES:
    openssl rsa -in key.pem -des3 -out keyout.pem
    • Преобразовать закрытый ключ из формата PEM в DER:
     openssl rsa -in key.pem -outform DER -out keyout.der
    • Выведите компоненты закрытого ключа на стандартный вывод:
    openssl rsa -in key.pem -text -noout
    • Чтобы вывести открытую часть закрытого ключа:
     openssl rsa -in key.pem -pubout -out pubkey.pem
    • сRSAPublicKeyОтформатируйте открытую часть закрытого ключа:
     openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem

    Импорт сертификата в Windows

    Ранее я вам рассказывал, где в операционной системе Windows хранятся сертификаты и вы помните, что там есть два глобальных контейнера:

    1. Первый, это для компьютера
    2. Второй для пользователя

    Я в своем примере буду импортировать сертификат в раздел локального компьютера, в личное расположение. И так у меня есть Wildcard сертификат имеющий формат PFX архива. Существует два метода импорта сертификата в операционных системах Windows:

    1. Через графический мастер импорта сертификатов
    2. Через использование утилиты командной строки certutil

    Давайте начнем с самого простого метода, через графический интерфейс. У меня есть файл pyatilistnik.pfx. Я щелкаю по нему двойным кликом и запускаю мастер импорта сертификатов.

    запускаю мастер импорта сертификатов

    Я указываю, что буду копировать сертификат в хранилище локального компьютера, нажимаю далее.

    выбор локального компьютера в мастере импорта сертификата

    Мастер импорта сертификата попытается удостовериться, какой файл вы будите копировать, поддерживаются форматы PFX, P12, p7b и SST.

    Поддерживаемые форматы PFX, P12, p7b и SST при импорте сертификата

    На следующем этапе вы указываете пароль от данного сертификата, при желании можете поставить галку “Пометить этот ключ как экспортируемый, что позволит сохранить резервную копию ключа и перемещать его”. Данная галка полезна при использовании сертификата их реестра, ну и потом можно будет его при необходимости перенести, но это МЕНЕЕ БЕЗОПАСНО, не не смертельно если есть пароль.

    Пометить этот ключ как экспортируемый

    Далее вы выбираете куда вы будите помещать сертификат при импорте, я выберу ручное помещение в личное хранилище.

    выбор контейнера в хранилище при Импорте сертификата в Windows

    Нажимаем далее.

    Импорт сертификата в Windows

    Завершаем мастер импорта сертификатов.

    Завершаем мастер импорта сертификатов

    В результате импортирование сертификата успешно выполнено.

     импортирование сертификата успешно выполнено

    Давайте удостоверимся, что у вас появился ваш сертификат, тут вы можете воспользоваться оснасткой mmc “сертификаты” или же утилитой certutil. Я покажу оба варианта, откройте командную строку или оболочку PowerShell и выполните:

    certutil просмотр импортированного сертификата

    В итоге у вас будет список всех ваших сертификатов, если знаете его CN, то можете отфильтровать по findstr. Второй вариант, это в окне выполнить открыть mmc и добавить там оснастку “Сертификаты” (Подробнее по ссылке выше про mmc).

    Импорт сертификата в Windows

    В контейнере “Личное – Сертификаты” я вижу свой Wildcard SSL сертификат, и по значку я вижу, что в нем есть закрытый ключ. Я его удалю, чтобы импортировать его с помощью certutil.

    Личное - Сертификаты

    Для импорта сертификата вам нужно через команду cd перейти в каталог, где хранится pfx архив. В моем примере, это каталог C:\Temp\wildcard.

    Далее импортируем наш сертификат. пишем команду:

    certutil -importPFX -p “12345678” my pyatilistnik.pfx

    Где -p, это пароль, а pyatilistnik.pfx имя файла.

    certutil Импорт сертификата в Windows

    Все с копированием сертификата в ваше локальное хранилище мы разобрались, переходим к экспорту.

    Формат сертификата PEM

    PEM – наиболее популярный формат среди сертификационных центров. PEM сертификаты могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Она представляют собой ASCII файлы, закодированные по схеме Base64. Когда вы открываете файл pem формата в текстовом редакторе, вы можете увидеть, что текст кода в нем начинается с тега “—– BEGIN CERTIFICATE —–” и заканчивая тегом “—– END CERTIFICATE —–“. Apache и другие подобные серверы используют сертификаты в PEM формате. Обратите внимание, что в одном файле может содержатся несколько SSL сертификатов и даже приватный ключ, один под другим. В таком случае каждый сертификат отделен от остальных ранее указанными тегами BEGIN и END. Как правило, для установки SSL сертификата на Apache, сертификаты и приватный ключ должны быть в разных файлах.

    Формат сертификата DER

    DER формат – это бинарный тип сертификата вместо формата PEM. В PEM формате чаще всего используется расширение файла .cer, но иногда можно встретить и расширение файла .der. Поэтому чтобы отличить SSL сертификат в формате PEM от формата DER, следует открыть его в текстовом редакторе и найти теги начала и окончания сертификата (BEGIN/END). DER SSL сертификаты, как правило, используются на платформах Java.

    PKCS # 7 / P7B сертификат

    SSL сертификаты в формате PKCS # 7 или P7B – это файлы, которые хранятся в формате Base64 ASCII и имеют расширение файла .p7b или .p7c. P7B сертификаты содержат теги начала сертификата “—– BEGIN PKCS7 ——” и его конца “—– END PKCS7 —–“. Файлы в формате P7B включают в себя только ваш SSL сертификат и промежуточные SSL сертификаты. Приватный ключ при этом идет отдельным файлом. SSL сертификаты в формате PKCS # 7 / P7B поддерживают следующие платформы: Microsoft Windows и Java Tomcat.

    PFX сертификат (формат PKCS # 12)

    Формат SSL сертификата PKCS # 12 или, как его еще называют, PFX сертификат – бинарный формат, при использовании которого в одном зашифрованном файле хранится не только ваш личный сертификат сервера и промежуточные сертификаты центра сертификации, но и ваш закрытый ключ. PFX файлы, как правило, имеют расширение .pfx или .p12. Обычно, файлы формата PFX используются на Windows серверах для импорта и экспорта файлов сертификатов и вашего приватного ключа.

    Онлайн конвертер SSL сертификатов

    Также существуют онлайн программы для конвертации сертификатов из одного формата в другой. Например, мы можем посоветовать SSL конвертер от SSLShopper. Используйте этот SSL конвертер для преобразования SSL-сертификатов различных форматов, таких как PEM, DER, P7B и PFX. Чтобы использовать SSL-конвертер, просто выберите файл сертификата и его текущий тип (он определяется по формату расширения), затем выберите формат, в какой Вам необходимо преобразовать SSL сертификат и нажмите кнопку “Convert Certificate”. Обратите внимание, что в зависимости от того, в какой формат вам нужно конвертировать SSL сертификат, от вас потребуются разные исходящие файлы.

    Конвертация PEM в DER

    Для конвертации стандартного сертификата в формате PEM в бинарный формат DER, потребуется только файлSSL сертификата. Обычно, вы его получаете в архиве вместе с промежуточными сертификатами. Как правило, в его названии указано имя вашего домена.

    Конвертация PEM в P7B / PKCS#7

    Если же вам нужно преобразовать ваш стандартный SSL сертификат в файл формата P7B / PKCS#7, вы можете кроме SSL сертификата вашего домена загрузить также файлы с цепочками сертификатов. Более подробно о том, что такое цепочка SSL сертификатов, мы писали в статье о CA-bundle.

    Конвертировать SSL сертификат PEM в P7B / PKCS#7

    Конвертация PEM в PFX / PKCS#12

    Обратите внимание, что для конвертации стандартного формата SSL сертификата необходимо добавить еще один файл – ваш приватный ключ. Приватный ключ – это конфиденциальная информация, которая должна быть только у вас. Поэтому центры сертификации не высылают его месте с файлами вашего сертификата. Приватный ключ создается в момент генерации CSR запроса. Если вы генерируете CSR у себя на сервере, на нем же должен автоматически сохраниться ключ. Если вы создаете CSR запрос в специальном инструменте на нашем сайте (на странице по ссылке или во время заполнения технических данных), ключ показывается вам в конце генерации CSR (или введения технических данных), но не сохраняется в нашей базе данных. Поэтому важно, чтобы вы самостоятельно сохранили приватный ключ.

    Конвертация PFX / PKCS#12 в PEM

    Если вам необходимо преобразовать SSL сертификат формата PFX в PEM-формат, следует открыть файл сертификата в любом текстовом редакторе и скопировать текст каждого сертификата вместе с тегами BEGIN / END в отдельные файлы, после чего их следует сохранить их как certificate.cer (для сертификата вашего сервера) и cacert.cer (для цепочки промежуточных сертификатов). То же самое следует проделать с текстом приватного ключа и сохранить его под названием privatekey.key.

    Как получить PFX ключ на IIS

    нажимаем сочетание клавиш WIN+R и вводим mmc, для вызова оснастки. Я вам уже рассказывал о ее применении и удобстве для системного администратора.

    Вызов mmc консоли

    Далее вам необходимо через меню “Файл” добавить новую оснастку.

    Добавление оснастки сертификаты компьютера

    Находим сертификаты и нажимаем кнопку “Добавить”

    добавление оснастки сертификаты

    В следующем окне выбираем “для учетной записи компьютера”

    сертификаты компьютера windows

    подтверждаем, что нас интересует локальный компьютер.

    локальное хранилище сертификатов

    Далее находим пункт “Запросы заявок на сертификат”, тут вы обнаружите ваш запрос, находите его и через правый клик экспортируете его.

    Запросы заявок на сертификат

    У вас откроется мастер экспорта сертификатов

    Мастер экспорта сертификатов

    Далее вы выбираете “Да, экспортировать закрытый ключ”

    Экспорт закрытого ключа

    Ставим галку “Включить по возможности все сертификаты в путь сертификации” и начинаем наш экспорт PFX архива.

    Экспорт pfx сертификата

    Теперь мастер экспорта, просит вас указать два раза нужный вам пароль, для защиты pfx архива.

    задаем пароль на сертификат

    Через кнопку обзор, указываем место сохранения вашего файла.

    указываем место pfx файла

    Нажимаем “Готово”

    экспорт pfx

    Как видим, все успешно выгружено.

    экспортированный pfx файл

    Установка OpenSSL для Windows

    Теперь нам необходимо наш файл pfx переделать в pem, Pem преобразовать в key:

    • с расширением .ca-bundle
    • с расширением .crt
    • key

    Вы получите из этих трех файлов, нужный для импорта pfx архив. Во всем этом нам поможет утилита OpenSSL для Windows.

    Скачать OpenSSL для Windows x64 – https://cloud.mail.ru/public/MZmy/yKvJkc7Ad

    В итоге у вас будет архив, распакуйте его куда вам будет угодно. Далее выберите вашу папку, зажмите SHIFT и щелкните по ней правым кликом, в открывшемся контекстном меню, выберите пункт “Открыть окно команд”.

    openssl в windows

    В результате чего у вас откроется командная строка Windows, но уже в нужной папке содержащей утилиту openssl.exe, она нам и поможет все сделать красиво.

    Преобразование PFX в PEM

    Теперь приступаем к получению фала в формате Pem. Положите в папку с дистрибутивом файл в формате pfx.

    openssl.exe pkcs12 -in “имя вашего pfx файла” -nocerts -out key.pem

    Мой пример:

    openssl.exe pkcs12 -in api.pyatilistnik.ru.pfx” -nocerts -out key.pem

    Вас попросят указать пароль от Pfx архива, вы его задавали при экспорте, после чего нужно придумать пароль на pem файл.

    pft to pem

    В папке с дистрибутивом OpenSSL вы обнаружите файл key.pem, он нам нужен будет для следующего этапа.

    Преобразование PFX в PEM

    Преобразование PEM в KEY

    Теперь получим файл с расширением key, для этого есть вот такая команда:

    openssl rsa -in key.pem -out <путь к вашему файлу key>

    Мой пример:

    openssl rsa -in key.pem -out api.pyatilistnik.ru.key

    Вас попросят указать пароль от pem ключа.

    Преобразование PEM в KEY

    В итоге я получил закрытый ключ в формате key.

    Еще у вас может возникнуть ошибка: unable to load Private Key 31320:error:0909006C:PEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: ANY PRIVATE KEY

    Тут вся проблема, что в вашем pem файле просто нет закрытого ключа, в результате чего вы и получаете данную ошибку.

    Unable to load Private Key

    Если у вас есть файл с csr запросом, ты вы его можете просто переделать из текущего расширения в key

    PEM to KEY

    Осталась финишная прямая.

    Получаем PFX ключ для импорта в IIS

    Теперь когда у вас есть все составляющие, вы можете выполнить последнюю команду для создания PFX файла для IIS сервера.

    openssl pkcs12 -export -out doman_com.pfx -inkey doman_com.key -in doman_com.crt -certfile doman_com.ca-bundle

    Мой пример:

    openssl.exe pkcs12 -export -out api.pyatilistnik.ru.pfx -inkey api.pyatilistnik.ru.key -in api.pyatilistnik.ru.crt -certfile api.pyatilistnik.ru.ca-bundle

    источник: https://medium.com/@thylux/how-to-create-csr-and-private-key-from-iis-3965191d67fe

    Задаем пароль для pfx файла, потребуется при импортировании.

    PFX ключ для импорта в IIS

    В итоге вы получаете нужный вам файл, который можно загружать на ваш почтовый сервер.

    полученный pfx

    Конвертация SSL сертификатов в OpenSSL

    Данные команды OpenSSL дают возможность преобразовать сертификаты и ключи в разные форматы. Для того чтобы сделать их совместимыми с определенными видами серверов, либо ПО. К примеру, Вам необходимо конвертировать обыкновенный файл PEM, который будет работать с Apache, в формат PFX (PKCS # 12) с целью применения его с Tomcat, либо IIS.

    • Конвертировать PEM в DER

      openssl x509 -outform der -in certificate.pem -out certificate.der

    • Конвертировать PEM в P7B

      openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

    • Конвертировать PEM в PFX

      openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

    • Конвертировать DER в PEM

      openssl x509 -inform der -in certificate.cer -out certificate.pem

    • Конвертировать P7B в PEM

      openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

    • Конвертировать P7B в PFX

      openssl pkcs7 -print_certs -in certificate.p7b -out certificate.ceropenssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

    • Конвертировать PFX в PEM

      openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

    Генерация тестового сертификата

    Как я и писал выше вы много, где сможете его применять, я когда знакомился с миром сертификатов и электронных подписей, то использовал тестовые ЭЦП от КриптоПРО для проверки правильности настройки программного обеспечения для работы на электронных, торговых площадках. Чтобы сгенерировать тестовый электронный сертификат, компания КриптоПРО предоставила вам специальный удостоверяющий, виртуальный центр, которым мы и воспользуемся. Переходим по ссылке:

    https://www.cryptopro.ru/certsrv/

    В самом низу у вас будет ссылка на пункт “Сформировать ключи и отправить запрос на сертификат”.

    получить тестовый сертификат-01

    Я вам советую этот сайт открывать в Internet Explore, меньше будет глюков. Как открыть Internet Explore в Windows 10, читайте по ссылке слева

    Если же вы хотите использовать другой браузер, то установите КриптоПро ЭЦП Browser plug-in.

    Установка КриптоПро ЭЦП Browser plug-in.

    Сама инсталляция плагина, очень простая, скачиваем его и запускаем.

    Установка КриптоПро ЭЦП Browser plug-in

    Для запуска нажмите “Выполнить”

    Установка КриптоПро ЭЦП Browser plug-in-02

    Далее у вас появится окно с уведомлением, что будет произведена установка КриптоПро ЭЦП Browser plug-in, соглашаемся.

    Установка КриптоПро ЭЦП Browser plug-in-03

    После инсталляции утилиты, вам нужно будет обязательно перезапустить ваш браузер.

    Установка КриптоПро ЭЦП Browser plug-in-05

    Открыв ваш браузер, вы увидите предупредительный значок, нажмите на него.

    Установка КриптоПро ЭЦП Browser plug-in-06

    В открывшемся окне нажмите “Включить расширение”

    Установка КриптоПро ЭЦП Browser plug-in-07

    Не забудьте установить КриптоПРО CSP на компьютер, где будет генерироваться сертификат

    Теперь у нас все готово. Нажимаем “Сформировать ключи и отправить запрос на сертификат”. Согласитесь с выполнением операции.

    получить тестовый сертификат-02

    У вас откроется форма расширенного запроса сертификата. Вначале заполним раздел “Идентифицирующие сведения”. В него входят пункты:

    • Имя
    • Электронная почта
    • Организация
    • Подразделение
    • Город
    • Область
    • Страна

    получить тестовый сертификат-03

    Далее вам нужно указать тип требуемого сертификата. В двух словах, это область применения ЭЦП:

    • Сертификат проверки подлинности клиента (самый распространенный вариант, по сути для подтверждения, что вы это вы)
    • Сертификат защиты электронной почты
    • Сертификат подписи кода
    • Сертификат подписи штампа времени
    • Сертификат IPSec, для VPN тунелей.
    • Другие, для специальных OID

    Я оставляю “Сертификат проверки подлинности клиента”.

    получить тестовый сертификат-04

    Далее вы задаете параметры ключа, указываете, что будет создан новый набор ключей, указываете гост CSP, от него зависит минимальная длина ключа. Обязательно пометьте ключ как экспортируемый, чтобы вы его могли при желании выгружать в реестр или копировать на флешку.

    получить тестовый сертификат-05

    Для удобства еще можете заполнить поле “Понятное имя”, для быстрой идентификации вашей тестовой ЭЦП от КриптоПРО. Нажимаем выдать тестовый сертификат.

    получить тестовый сертификат-06

    У вас появится запрос на создание, в котором вам необходимо указать устройство, на которое вы будите записывать тестовый сертификат КриптоПРО, в моем случае это е-токен.

    получить тестовый сертификат-07

    Как только вы выбрали нужное устройство появится окно с генерацией случайной последовательности, в этот момент вам необходимо нажмить любые клавиши или водить мышкой, это защита от ботов.

    получить тестовый сертификат-08

    Все наш контейнер КриптоПРО сформирован и для его записи введите пин-код.

    получить тестовый сертификат-09

    Вам сообщат, что запрошенный вами сертификат был вам выдан, нажимаем “Установить этот сертификат”.

    получить тестовый сертификат-10

    Если у вас еще не установленны корневые сертификаты данного центра сертификации, то вы получите вот такую ошибку:

    Данный ЦС не является доверенным

    Для ее устранения нажмите на ссылку “установите этот сертификат ЦС”

    получить тестовый сертификат-11

    У вас начнется его скачивание.

    получить тестовый сертификат-12

    Запускаем его, как видите в левом верхнем углу красный значок, чтобы его убрать нажмите “Установить сертификат”, оставьте для пользователя.

    получить тестовый сертификат-13

    Далее выбираем пункт “Поместить все сертификаты в следующее хранилище” и через кнопку обзор указываете контейнер “Доверенные корневые центры сертификации”. Далее ок.

    получить тестовый сертификат-14

    На последнем этапе у вас выскочит окно с предупреждением, о подтверждении установки сертификатов, нажимаем “Да”.

    получить тестовый сертификат-15

    Открываем снова окно с выпуском тестового сертификата КриптоПРО и заново нажимаем “Установить сертификат”, в этот раз у вас вылезет окно с вводом вашего пин-кода от вашего носителя.

    получить тестовый сертификат-16

    Если вы его ввели правильно, то увидите, что новый сертификат успешно установлен.

    получить тестовый сертификат-17

    Теперь открывайте ваш КриптоПРО и посмотрите есть ли сертификат в контейнере. Как видите в контейнере есть наша ЭЦП.

    получить тестовый сертификат-18

    Если посмотреть состав, то видим все наши заполненные поля. Вот так вот просто выпустить бесплатный, тестовый сертификат КриптоПРО, надеюсь было не сложно.

    получить тестовый сертификат-19

    Примеры сценариев при импорте и экспорте сертификата

    Если вы мой постоянный читатель, то вам уже должны быть знакомы понятие SSL сертификата, его виды и назначение. Сейчас уже сложно себе представить работу юридических лиц, ИП и обычных граждан без сертификатов и ЭЦП. Многие программы используют их для шифрования трафика, например при документообороте или при доступе к сервису, очень частый пример, это кабинет клиент-банка.

    В большинстве случаев у людей на компьютере установлена операционная система Windows, она не идеальна и бывают частые случаи ее выхода из строя. При таком раскладе у вас легко могла возникать ситуация по восстановлению вашего сертификата из хранилища Windows, или при обновлении вашего компьютера на более новый, где так же производили перенос сертификатов, я приводил такой пример для КриптоПРО. Переходим к практике.

    Что делать если нет сертификата в запросах заявок на сертификат

    Бывают ситуации, что на вашем сервере по каким-то причинам, в папке запросы на сертификат, может не оказаться вашего, в этом случае вам необходимо будет перейти в этой же mmc в раздел “Личное-Сертификаты”. Выбираем нужный и делаем экспорт.

    Или вы можете просто открыть существующий CRT и в нем так же выгрузить P7B, это не потребует установку crt

    экспорт в p7b

    Появится мастер экспорта сертификатов.

    мастер экспорта p7b

    Обратите внимание, что в pfx выгрузить не получится, но это не страшно, нам подойдет и p7b, но с включенной галкой “Включить по возможности все сертификаты в путь сертификации”

    p7b в pfx

    Указываем путь сохраняемого файла.

    p7b в pem

    Видим, что все успешно выполнено.

    полученный файл p7b

    Преобразование p7b в pem

    Попробует такое преобразование.

    openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem

    Мой пример

    openssl.exe pkcs7 -in new.pyatilistnik.ru.p7b -inform DER -print_certs -out new.pyatilistnik.ru.pem

    p7b to pem-2

    В итоге я получил файл new.pyatilistnik.ru.pem

    p7b to pem

    Ну, а дальше уже по инструкции сверху. Если у вас выскочит ошибка, по типу

    C:\AMD64-Win64OpenSSL-0_9_8g>openssl.exe rsa -in new.pyatilistnik.ru.pem -out new. pyatilistnik.ru.key unable to load Private Key 6944:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib .c:647:Expecting: ANY PRIVATE KEY

    То наш вариант это .crt в .der и уже .der в .pem

    Преобразование CRT в PEM

    Кладем так же все в одну папку, файл crt вам должны были прислать вместе с ca-bundle.

    Первое это crt в der

    openssl x509 -in new.pyatilistnik.ru.crt -out new.pyatilistnik.ru.der -outform DER

    Теперь der в pem.

    openssl x509 -in new.pyatilistnik.ru.der -inform DER -out new.pyatilistnik.ru.pem -outform PEM

    crt в der

    В итоге у меня получилось, вот так.

    der в pem

    Для чего нужно преобразование сертификатов

    Тут ответ, очень простой, все дело в формате работы с ними у каждой программы, будь то IIS или же Apache сервер. Более подробно про виды сертификатов и их назначение, я вам посоветую прочитать вот эту статью.

    Давайте я подробнее покажу как выглядит ошибка импортирования сертификата. Во первых когда вы получаете от comodo ваш архив с сертификатами, то там будет два файла:

    • с расширением .ca-bundle
    • с расширением .crt

    crt сертификат comodo

    Попытавшись на сервере IIS произвести их импорт вы увидите вот такую картинку.

    Сертификат не содержит закрытого ключа

    сертификат не содержит закрытого ключа

    И тут нет ничего удивительного, так как это не pfx архив, то в нем нет нужного приватного ключа. Для его получения придется слегка постараться.

    Экспорт сертификата Windows

    Давайте теперь проделаем процедуру обратного порядка. Первым делом я произведу экспорт сертификата из графического интерфейса. В оснастке “Сертификаты” найдите нужный вам. Щелкните по нему правым кликом и выберите “Все задачи – Экспорт’.

    Экспорт сертификата Windows

    У вас откроется окно мастера экспорта сертификатов, нажимаем далее.

    мастера экспорта сертификатов

    Если есть возможно и закрытый ключ экспортируемый, то можете выставить режим “Да, экспортировать закрытый ключ”.

    Да, экспортировать закрытый ключ

    Вам будет предложено выбрать формат выгрузки, тут могут быть расширения cer DER, cer Base-64, p7b, PFX. Так как у меня сертификат Wildcard, то я могу выгрузить в “Файл обмена личной информацией -PKCS # 12(.PFX)”. Если вы планируете после экспорта удалить из личного хранилища ваш сертификат, то можете тут выставить соответствующую галку. Так же может выгрузить все расширения, после чего нажимаем далее.

    выбор формата при Экспорте сертификата Windows

    Задаем обязательный пароль два раза, лучше сразу задавать стойкий пароль.

    Установка пароля при Экспорте сертификата Windows

    В следующем окне мастера по экспорту сертификатов, вы задаете его имя и где он будет сохранен.

    Место сохранения Экспортируемого сертификата Windows

    Нажимаем далее.

    Экспорт сертификата Windows

    Завершаем процедуру экспорта pfx архива из нашего хранилища сертификатов.

    Завершаем процедуру экспорта pfx архива из нашего хранилища сертификатов.

    Экспорт успешно выполнен.

    Экспорт успешно выполнен

    Теперь давайте произведем экспорт с помощью утилиты certutil. Перед тем, как это сделать, нам необходимо вычислить серийный номер сертификата.Для этого выполните команду:

    Находим поле “Серийный номер” у нужного сертификата и копируем его.

    Серийный номер при Экспорте сертификата Windows

    Далее пишем команду для экспорта сертификата;

    certutil -exportPFX -p “12345678” my 790000fa279f2bd96421c6e2bc00010000fa27 export-cert-2.pfx

    Все успешно отработало.

    Экспорт сертификата Windows

    На выходе я получил файл export-cert-2.pfx. Открыть архив с сертификатом вы легко сможете через утилиту keytool или Key Store Explorer.

    Список экспортированных сертификатов

    На этом у меня все, мы с вами разобрали алгоритм и методы по импортированию и экспортированию сертификатов в операционной системе Windows. остались вопросы или пожелания, то я жду их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

    Как создать. ca-bundle

    Если у вас нет в наличии отдельного файла с расширением .ca-bundle, то создать его очень просто. Вам должны были прислать несколько файлов в формате crt, от корневого и промежуточного центра сертификации. Посмотреть это можно в общем crt файле на вкладке “Путь сертификации”.

    путь сертификации

    В моем примере, корневым является DIGI, а промежуточным Thawte. При желании вы можете их выбрать и скопировать в виде файла формата crt. Откроем их с помощью блокнота. По сути создание .ca-bundle подразумевает объединение содержимого этих двух файлов цепочки. Это можно сделать через создание нового текстового файла и добавление в него данной информации с последующим изменением расширения txt на .ca-bundle или выполнить команду.

    состав crt файлов

    Вот так выглядит команда по созданию .ca-bundle файла.

    copy intermediate_pem_thawte_sslwildcard_1.crt + root_pem_thawte_sslwildcard_1.crt pyatilistnik.ca-bundle

    создание .ca-bundle

    Оцените статью
    ЭЦП Эксперт