Содержание
- PKCS#12 incorrect password error #84
- Comments
- 🔐 Как использовать OpenSSL для управления архивом PKCS #12
- Что такое PKCS #12 ?
- Как создать образец сертификата.
- Выполним операции по PKCS #12
- viking_k
- Записная книжка IT-шника
- идеи / интересы / шлак
- Бложег
- пятница, 15 июня 2012 г.
- Использование OpenSource крипто библиотек для работы с ГОСТовыми сертификатами CryptoPro
- exp build iOS enterprise app error: PKCS#12 MAC could not be verified. Invalid password? #1771
- Comments
- The build error:
PKCS#12 incorrect password error #84
Steps to reproduce
- Generate any PKCS#12 on examples page with a password.
- Try to extract key using OpenSSL command with the same password
openssl pkcs12 -in pkijs_pkcs12.p12 -nocerts -out key.pem -nodes
the result is an error: Mac verify error: invalid password? - Try to import into Windows certification store with the same password using certmgr.msc
the result is an error: The password you entered is incorrect
The text was updated successfully, but these errors were encountered:
Check this link for some additional explanations about PKCS#12 and OpenSSL/Windows integration. As a small conclusion: Windows will not understand any of PKCS#12 bundles made by PKI.js, OpenSSL will understand only some of them.
Also please carefully read note on the example’s page you were referring to:
I decided to update the issue with some new information. So, not so long ago I found that PKIjs was having incorrect algorithm for MacData processing. That is why all had the problems with Mac verify error . The error fixed already, btw. As for Windows The password you entered is incorrect — this example could produce PKCS#12 files which could be successfully parsed by Windows. The example is running on Node only — Windows is using old 3DES and RC2 algorithms and we do not have them in browser evironment.
Источник
🔐 Как использовать OpenSSL для управления архивом PKCS #12
Что такое PKCS #12 ?
В криптографии PKCS#12 — один из стандартов семейства Public-Key Cryptography Standards (PKCS), опубликованных RSA Laboratories. Он определяет формат файла, используемый для хранения и/или транспортировки закрытого ключа (en:Private key), цепочки доверия от сертификата пользователя до корневого сертификата удостоверяющего центра и списка отзыва сертификатов (CRL). Защита файла осуществляется одним из двух способов: безопасным, с использованием доверенной ключевой пары (открытый/закрытый ключи, подходящие для цифровой подписи и шифрования) или менее безопасным, с использованием симметричного ключа, основанного на пароле. Второй подходит для случаев, когда использование доверенных пар открытый/закрытый ключей недоступны. Формат PKCS#12 — это формат, предназначенный для хранения ключевой пары (закрытый ключ и сертификат), который распознается и используется многими браузерами и почтовыми агентами. В файлах PKCS#12 хранятся одновременно и сертификат, и закрытый ключ (разумеется в зашифрованном виде). Примерная организация PKCS#12 файла показана на рисунке справа.
Как создать образец сертификата.
Файл закрытого ключа example.org.key.
Выполним операции по PKCS #12
Создадим архив PKCS #12, используя
в качестве пароля.
Выведем информацию о файле PKCS# 12 для простой проверки.
Введите пароль с помощью командной строки.
Введите пароль, используя файл.
Извлечение и отображение сертификатов, приватных ключей из архива PKCS #12.
Извлечение сертификатов и закрытых ключей из архива PKCS # 12 в файл.
Источник
viking_k
Записная книжка IT-шника
идеи / интересы / шлак
Итак понадобилось мне получить доступ к единому реестру запрещенных ресурсов, но все оказалось не так просто как хотелось бы.
Вводная:
Сервер на Debian 7
ЭЦП на etoken, в нутре контейнера ViPNet
Необходимо автоматерировать процесс регулярного обращения к реестру запрещенных ресурсов и выгрузки с него списка «плохишей»
Начало войны — Несправедливость:
Под Виндой все работает великолепно. Достаточно установить ViPNet CSP для управления сертификатами и ViPNet CryptoFile для подписи файлов. Все это есть на сайте производителя. Но для Линуксов ничего есть только программа ViPNet CSP, да и та в бета-тестирвании.
Битва первая — Драйвер:
Электронные ключи eToken выпускаются компанией Аладин Р.Д., драйвера можно скачать на соответствующем сайте. Приятно порадовало есть драйвера для платформ отличный от Windows.
Для моего Debian это выглядило так:
Список обектов в определенном слоте можно увидеть так:
$ pkcs11-tool —module /usr/lib/libeTPkcs11.so —slot 0 -Ol
Содержимое объекта в слоте можно посмотреть так:
$pkcs11-tool —module /usr/lib/libeTPkcs11.so —slot 0 -a ‘ViPNet Container’ -y data -r
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
.
В общем и целом делаем вывод, что драйвера на eToken встали великолепно, НО ViPNet CSP для линукс его в упор не видит и естественно открыть свой контейнер не может.
Для проверки еще попытался подойти к вопросу со стороны. Открываем наш любимый браузер — Mozilla Firefox, и пользуемся вот такой инструкцией:
Битва вторая — Контейнер
Зализав раны от побоища я обратился за помощью к Windows и таки корректно извлек контейнер из eToken с помощью ViPNet CSP . А так же из ViPNet CSP экспортировал ЭЦП в формат PKCS#12 в файл name.pfx. Счастью не было придела. Но оказалось:
1. На Windows без установленного ViPNet CSP файл с сертификатом name.pfx не рапаковывается, ругаясь на неправильный пароль. Хотя пароль вводился 100% правильный.
Если ViPNet CSP установить то все распаковывается на ура. Без ViPNet CSP так же нельзя провести ниодин экспорт. Эта зараза помещает сикретный ключ в свой собственный контейнер с отдельным паролем. А при удалении забирает все контейнеры на небеса.
2. Утилита P12FromGostCSP так же не может произвести экспорт сертификата в формате PKCS#12 ругаясь на то, что с ViPNet она работать не умеет.
3. На Debian средствами OpenSSL просмотреть файл не удалось. Хотя пароль опять же вводился 100% правильный.
Попытка включить поддержку шифрования по ГОСТ для OpenSSL результатов не принесла.
В общем и целом ситуация складывается безвыходная — с конейнерами ViPNet может работать только сам ViPNet и больше никто. Средств для автоматизации процесов нет ни под Windows ни под Linux.
Битва проиграна.
Битва Третья — Другой криптопровайдер
Подписываем файл запроса на Роскомнадзор:
Источник
Бложег
блог о быдлокодинге
пятница, 15 июня 2012 г.
Использование OpenSource крипто библиотек для работы с ГОСТовыми сертификатами CryptoPro
В данной статье делается попытка ответить на вопрос: возможно ли использовать OpenSource библиотеки для работы с ГОСТовыми сертификатами?
Если коротко, то да.
Для проверки использовалась последняя на данный момент версия OpenSSL (1.0.1с), собранная из исходников с поддержкой gost engine
Для начала нужно установить КриптоПро CSP 3.6 R3, поскольку в нем реализована поддержка экспорта сертификатов в формате pfx. Эту часть работ нужно делать в операционной системе Windows. Не буду описывать подробно этот процесс, скажу лишь, что нужно сохранить приватный ключ в формате CryptoPro на флэшку и импортировать его в хранилище «Реестр». Выгрузив сертификат в файл, например store.pfx (включая приватный ключ), можно вывести приватный ключ в stdout командой
- -info вывести информацию о содержимом файла в формате pkcs12 (.pfx)
- -engine использовать указанный криптографический модуль
- -nodes не нужно шифровать приватный ключ
- -in входной файл
Если вы получаете ошибку вида «unknown PBE algorithm»
То это означает, что вам потребуется другое средство для получения pfx файла, утилитка P12FromGostCSP.exe
Если вы получаете ошибку вида «unknown digest algorithm»
Enter Import Password:
MAC Iteration 2048
Mac verify error: invalid password?
140572666472096:error:2306B076:PKCS12 routines:PKCS12_gen_mac:unknown digest algorithm:p12_mutl.c:88:
140572666472096:error:2307E06D:PKCS12 routines:PKCS12_verify_mac:mac generation error:p12_mutl.c:122:
то скорее всего в вашем openssl нет поддержки ГОСТовых алгоритмов либо вы используете не ту копию openssl.
Если все прошло без ошибок, то в консоли вы получите приватный ключ и сертификат. Скопировав выведенный в консоль приватный ключ (вместе со словами ——BEGIN PRIVATE KEY—— и ——END PRIVATE KEY——) в отдельный файл private.key мы сможем с его помощью создавать ЭЦП.
Команда для генерации примерно следующая:
- -sign генерация подписи
- -inkey путь к приватному ключу
- -in подписываемый файл
- -CAfile файл УЦ
- -signer файл с сертификатом, которым осуществляется подпись
- -engine использовать указанный криптографический модуль
- -out файл, в который будет записана ЭЦП
- -outform формат подписи
- -noattr не добавлять дополнительных аттрибутов в подпись
- -binary считать подписываемый файл массивом байт, а не текстом
К сожалению, Bouncy Castle (версии 1.46), хоть в нем и декларируется поддержка ГОСТовых алгоритмов, не может разобрать формат приватного ключа, так что использовать его для генерации ЭЦП на данный момент не представляется возможным.
UPD:
Bouncy Castle 1.55 уже умеет работать с такими приватными ключами
Источник
exp build iOS enterprise app error: PKCS#12 MAC could not be verified. Invalid password? #1771
Hi, I use expo build the iOS enterprise app and it report the Invalid password error. But I have regenerate the p12 file and reset the password and it still error.
The build error:
I have verify the p12 file password locally and it is correct.
I can publish the iOS app using the same password last week. But it failed today. Is something broken? Thanks.
The text was updated successfully, but these errors were encountered:
Hi @zhaozhiming — what an odd error 😕 A quick google search suggests that sometimes setting an empty password or a password with non-ASCII characters could potentially cause this issue. Could you try setting a different password for your p12 file (maybe a simple, but non-empty, one) and let us know if that works?
My password is very simple. First time I set the password to 123 , second time I set to 111 , but they both failed.
@zhaozhiming — okay, thanks for the info. It looks like we’ve recently changed how we run the signing code on our servers. I’ll ping someone internally and see if we can get this figured out.
@esamelson Thanks. Waiting for your good news.
Same problem, very simple password
@zhaozhiming @jonatanrinckus
I found the issue in our code. The problem occurs only for passwords which have only digits. I’ll add support for them (i’ll fix the bug) soon, but until then you can change your passwords to something that have at least one letter. Please let me know if it resolves the problem for you. Thanks!
Источник
На чтение 12 мин Опубликовано 13.07.2020
Содержание
- Что такое PKCS #12 ?
- Как создать образец сертификата.
- Выполним операции по PKCS #12
- Дополнительная информация
- Распространенные ошибки
Что такое PKCS #12 ?
Из wiki:
В криптографии PKCS#12 — один из стандартов семейства Public-Key Cryptography Standards (PKCS), опубликованных RSA Laboratories. Он определяет формат файла, используемый для хранения и/или транспортировки закрытого ключа (en:Private key), цепочки доверия от сертификата пользователя до корневого сертификата удостоверяющего центра и списка отзыва сертификатов (CRL). Защита файла осуществляется одним из двух способов: безопасным, с использованием доверенной ключевой пары (открытый/закрытый ключи, подходящие для цифровой подписи и шифрования) или менее безопасным, с использованием симметричного ключа, основанного на пароле. Второй подходит для случаев, когда использование доверенных пар открытый/закрытый ключей недоступны. Формат PKCS#12 — это формат, предназначенный для хранения ключевой пары (закрытый ключ и сертификат), который распознается и используется многими браузерами и почтовыми агентами. В файлах PKCS#12 хранятся одновременно и сертификат, и закрытый ключ (разумеется в зашифрованном виде). Примерная организация PKCS#12 файла показана на рисунке справа.
Как создать образец сертификата.
$ openssl req -subj "/commonName=example.org/" -x509 -nodes -days 730 -newkey rsa:2048 -keyout example.org.key -out example.org.pem
файл сертификата – example.org.pem.
-----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgIUY5YmshFi3LCcZ4659dQ90IUpMX0wDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5vcmcwHhcNMjAwMTE0MDAwMDExWhcNMjIw MTEzMDAwMDExWjAWMRQwEgYDVQQDDAtleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBANWClj4Jn7D4MUHMjZUcY/dx3RroU+tPgEkUjxJU P9srhkDWKIVFqzZDfFldHg3KWQWvbmHVhWGobQY6ylx5epFy62nAXMvkfkiPefne 6A6XxOomhJ71E4VeSNiY50vbRxzOOwKb+P+3gtK7KauRK42cP7xjGEQlpVTFOvjl wGmbUhZxZqS1jpjc6GMkaCIl8+oJD9kCzBjTLBLs+rw4DlFndfxim22HEbRClE48 /6eJ0AY9eZzkpuAaPTjYvqIaw+s/QWAZTJ+0Ev5YKw5PgPnb7qDPb0hbIcnG2F6/ 3Gn3GR6lVrhWjlB1fGxEFDoP8BoGIBafPf8xUlfDyRTZQxcCAwEAAaNTMFEwHQYD VR0OBBYEFHJPh7s99IvIYjWZCsiOmEOpbEaYMB8GA1UdIwQYMBaAFHJPh7s99IvI YjWZCsiOmEOpbEaYMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB AIHsx0NMJ7AgyZF/pSlG2dNhxm79K9qdDB+adXkdPpQzzIpGAPprU392SVjTYKtZ S9Y4ELrL+G/XwANLWp6UzeMZXsQfUf23LifIrvhHgjtQt/OfRIdlWjWdVOaFHg8T TZPYcHUHv836evf/2lfLbj2eZIBXoXjfOi+pDlxM/h1avrSgS25FG9Qz8PnK8xJ2 85r2xseSYxfhTEzb+N8f8RmTdClWwTT6TdeyDaQ0xwdp0W2xWKTCAkgwFyAxAcmk 5n37C8eNZWSrLQEk8i35/ziC2mpgQrNNuxGoG2U8h2RC/e5OZXgxkTqao6ul82Yt CUVAgzzpIshyiy/VrSjVKoM= -----END CERTIFICATE-----
Файл закрытого ключа example.org.key.
-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVgpY+CZ+w+DFB zI2VHGP3cd0a6FPrT4BJFI8SVD/bK4ZA1iiFRas2Q3xZXR4NylkFr25h1YVhqG0G OspceXqRcutpwFzL5H5Ij3n53ugOl8TqJoSe9ROFXkjYmOdL20cczjsCm/j/t4LS uymrkSuNnD+8YxhEJaVUxTr45cBpm1IWcWaktY6Y3OhjJGgiJfPqCQ/ZAswY0ywS 7Pq8OA5RZ3X8YptthxG0QpROPP+nidAGPXmc5KbgGj042L6iGsPrP0FgGUyftBL+ WCsOT4D52+6gz29IWyHJxthev9xp9xkepVa4Vo5QdXxsRBQ6D/AaBiAWnz3/MVJX w8kU2UMXAgMBAAECggEAGq6NFAej2zvI/A4SC3ZWz8988CXkht2SjI9zKbk5mawg xO1+dtk0Aj4AxjIq1VJaOamow7UpTAD+Tu795vyPYqnX3Ylaj2hol6zGc4F1wo0Y 4KIbpLm/zMTxmY/SJ9qpUmI7YaIYReyq/qbBGF218aZ7GJHRsIJ73NIhAoXDu+6g fWjRg19hSz/EM/68hPxM7vstPC0S/zdMicrnbcCtA23AJL5cyifa1W1VkMv3SW3t fswSvxLT4qDRyBxc6Xq0ULNm1Q+FMyhqtPhnUX4qi9289cal0U+9rfEhFc2q0I2T VujPz76Ncm4IGeh/lf67dHYvwy7qHaPmL3Wto1U0IQKBgQD9hMjS6k8pkz7WCLJl 0JNHw0QWczM5+q2BfQM7w8McmWX0mvKqkLiGLyIo1QS8GgR+uOoEJ8v5rNZLW1SU Q4SWExj8IQL+ofUDn4U1zbKtyRXybURC0GWGjbX8F4YJrLBmAuCeJNB6If4RTT/T q9ZFYPwRzjOO+QZMICKDZlIriQKBgQDXmY6auU8uPSkPbCuZzUPX3z+fVVwRg8mm zPGlsZ+uQvQT9qU37RpoWKxMRjjS61F2qdyxr6+++LqmAVU/QSdokJQP2A0LVCeG +zPY/6zj4Y7CI81T2r9P6eVBVhS7eg9ggrnyIqwdBykh+u0zKXDSkfp7hEoChvL0 G6Cc2+MxnwKBgAwii/5Uit+BldNm7SskdbhMp3ivoPcYga+eDUaSE0fOK+wucokp jjuWC/uKXsSmNirerQzv3rqfxE4tG/pQ1Qrd9Sc0aVFI7VJ0E0tFAlWBN5S4GDle gk2TgO+FLLxP0M3BO4E2X+hIskGfwfte0U3W25n6lcs1LlD8hMpnXm2JAoGBAJAu zUOD8gQGOtNpj68HqvtO/Ylc2HmOHOlD3cblhthPRlOjetJv6l0mD/PiclX7sTse Vc0upOWeCZTDB3OJ6wTuy1XdMrwEx3ppvD6+nay4R3Rl5QbTH2YeEYckPjEya94r DpdzwI6ZH1TuLnssl5r6rPy1d5lBDnFZmIvOMZ4ZAoGAL9m3qzKmOlqGAD32w11V 0zzr0orZPRiCXZ1SqQ1MRwKUexZeDCee4ZVZhhPtlyk8btqgG4j85RffFHbcwuv3 eGgx6S/6GzXRu0sICLrAmHT+Q2WA/PKp0kD6Abz1DXLJUjr/nF6UUkqEOrCvGXoq 2MhMYc07op+riO+4pUwfzRY= -----END PRIVATE KEY-----
Выполним операции по PKCS #12
Создадим архив PKCS #12, используя
samplepassword
в качестве пароля.
$ openssl pkcs12 -export -name example.org -in example.org.pem -inkey example.org.key -out example.org.p12 -password pass:samplepassword
Выведем информацию о файле PKCS# 12 для простой проверки.
Введите пароль с помощью командной строки.
$ openssl pkcs12 -in example.org.p12 -info -password pass:samplepassword -noout MAC: sha1, Iteration 2048 MAC length: 20, salt length: 8 PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048 Certificate bag PKCS7 Data Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Выведем информацию о файле PKCS# 12 для простой проверки.
Введите пароль, используя файл.
$ echo "samplepassword" > passwordfile
$ openssl pkcs12 -in example.org.p12 -info -password file:passwordfile -noout MAC: sha1, Iteration 2048 MAC length: 20, salt length: 8 PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048 Certificate bag PKCS7 Data Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Введите пароль, используя стандартный ввод.
$ openssl pkcs12 -in example.org.p12 -info -noout Enter Import Password: ************** MAC: sha1, Iteration 2048 MAC length: 20, salt length: 8 PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048 Certificate bag PKCS7 Data Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 204
Покажем сущность для каждого сохраненного сертификата.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -nokeys -clcerts | openssl x509 -noout -subject subject=CN = example.org
Отобразим имя каждого сохраненного сертификата.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -nokeys -clcerts | grep friendlyName friendlyName: example.org
Извлечение и отображение сертификатов, приватных ключей из архива PKCS #12.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -nodes Bag Attributes localKeyID: 4D 4E 49 0B 09 48 B8 6A F7 9E 6F C7 DC 94 FE 1B EF 07 58 F1 friendlyName: example.org subject=CN = example.org issuer=CN = example.org -----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgIUY5YmshFi3LCcZ4659dQ90IUpMX0wDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5vcmcwHhcNMjAwMTE0MDAwMDExWhcNMjIw MTEzMDAwMDExWjAWMRQwEgYDVQQDDAtleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBANWClj4Jn7D4MUHMjZUcY/dx3RroU+tPgEkUjxJU P9srhkDWKIVFqzZDfFldHg3KWQWvbmHVhWGobQY6ylx5epFy62nAXMvkfkiPefne 6A6XxOomhJ71E4VeSNiY50vbRxzOOwKb+P+3gtK7KauRK42cP7xjGEQlpVTFOvjl wGmbUhZxZqS1jpjc6GMkaCIl8+oJD9kCzBjTLBLs+rw4DlFndfxim22HEbRClE48 /6eJ0AY9eZzkpuAaPTjYvqIaw+s/QWAZTJ+0Ev5YKw5PgPnb7qDPb0hbIcnG2F6/ 3Gn3GR6lVrhWjlB1fGxEFDoP8BoGIBafPf8xUlfDyRTZQxcCAwEAAaNTMFEwHQYD VR0OBBYEFHJPh7s99IvIYjWZCsiOmEOpbEaYMB8GA1UdIwQYMBaAFHJPh7s99IvI YjWZCsiOmEOpbEaYMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB AIHsx0NMJ7AgyZF/pSlG2dNhxm79K9qdDB+adXkdPpQzzIpGAPprU392SVjTYKtZ S9Y4ELrL+G/XwANLWp6UzeMZXsQfUf23LifIrvhHgjtQt/OfRIdlWjWdVOaFHg8T TZPYcHUHv836evf/2lfLbj2eZIBXoXjfOi+pDlxM/h1avrSgS25FG9Qz8PnK8xJ2 85r2xseSYxfhTEzb+N8f8RmTdClWwTT6TdeyDaQ0xwdp0W2xWKTCAkgwFyAxAcmk 5n37C8eNZWSrLQEk8i35/ziC2mpgQrNNuxGoG2U8h2RC/e5OZXgxkTqao6ul82Yt CUVAgzzpIshyiy/VrSjVKoM= -----END CERTIFICATE----- Bag Attributes localKeyID: 4D 4E 49 0B 09 48 B8 6A F7 9E 6F C7 DC 94 FE 1B EF 07 58 F1 friendlyName: example.org Key Attributes: <No Attributes> -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVgpY+CZ+w+DFB zI2VHGP3cd0a6FPrT4BJFI8SVD/bK4ZA1iiFRas2Q3xZXR4NylkFr25h1YVhqG0G OspceXqRcutpwFzL5H5Ij3n53ugOl8TqJoSe9ROFXkjYmOdL20cczjsCm/j/t4LS uymrkSuNnD+8YxhEJaVUxTr45cBpm1IWcWaktY6Y3OhjJGgiJfPqCQ/ZAswY0ywS 7Pq8OA5RZ3X8YptthxG0QpROPP+nidAGPXmc5KbgGj042L6iGsPrP0FgGUyftBL+ WCsOT4D52+6gz29IWyHJxthev9xp9xkepVa4Vo5QdXxsRBQ6D/AaBiAWnz3/MVJX w8kU2UMXAgMBAAECggEAGq6NFAej2zvI/A4SC3ZWz8988CXkht2SjI9zKbk5mawg xO1+dtk0Aj4AxjIq1VJaOamow7UpTAD+Tu795vyPYqnX3Ylaj2hol6zGc4F1wo0Y 4KIbpLm/zMTxmY/SJ9qpUmI7YaIYReyq/qbBGF218aZ7GJHRsIJ73NIhAoXDu+6g fWjRg19hSz/EM/68hPxM7vstPC0S/zdMicrnbcCtA23AJL5cyifa1W1VkMv3SW3t fswSvxLT4qDRyBxc6Xq0ULNm1Q+FMyhqtPhnUX4qi9289cal0U+9rfEhFc2q0I2T VujPz76Ncm4IGeh/lf67dHYvwy7qHaPmL3Wto1U0IQKBgQD9hMjS6k8pkz7WCLJl 0JNHw0QWczM5+q2BfQM7w8McmWX0mvKqkLiGLyIo1QS8GgR+uOoEJ8v5rNZLW1SU Q4SWExj8IQL+ofUDn4U1zbKtyRXybURC0GWGjbX8F4YJrLBmAuCeJNB6If4RTT/T q9ZFYPwRzjOO+QZMICKDZlIriQKBgQDXmY6auU8uPSkPbCuZzUPX3z+fVVwRg8mm zPGlsZ+uQvQT9qU37RpoWKxMRjjS61F2qdyxr6+++LqmAVU/QSdokJQP2A0LVCeG +zPY/6zj4Y7CI81T2r9P6eVBVhS7eg9ggrnyIqwdBykh+u0zKXDSkfp7hEoChvL0 G6Cc2+MxnwKBgAwii/5Uit+BldNm7SskdbhMp3ivoPcYga+eDUaSE0fOK+wucokp jjuWC/uKXsSmNirerQzv3rqfxE4tG/pQ1Qrd9Sc0aVFI7VJ0E0tFAlWBN5S4GDle gk2TgO+FLLxP0M3BO4E2X+hIskGfwfte0U3W25n6lcs1LlD8hMpnXm2JAoGBAJAu zUOD8gQGOtNpj68HqvtO/Ylc2HmOHOlD3cblhthPRlOjetJv6l0mD/PiclX7sTse Vc0upOWeCZTDB3OJ6wTuy1XdMrwEx3ppvD6+nay4R3Rl5QbTH2YeEYckPjEya94r DpdzwI6ZH1TuLnssl5r6rPy1d5lBDnFZmIvOMZ4ZAoGAL9m3qzKmOlqGAD32w11V 0zzr0orZPRiCXZ1SqQ1MRwKUexZeDCee4ZVZhhPtlyk8btqgG4j85RffFHbcwuv3 eGgx6S/6GzXRu0sICLrAmHT+Q2WA/PKp0kD6Abz1DXLJUjr/nF6UUkqEOrCvGXoq 2MhMYc07op+riO+4pUwfzRY= -----END PRIVATE KEY-----
Извлечение сертификатов и закрытых ключей из архива PKCS # 12 в файл.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -nodes -out example.org.certificate
Извлечение и отображение сертификата из архива PKCS #12.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -clcerts -nokeys Bag Attributes localKeyID: 4D 4E 49 0B 09 48 B8 6A F7 9E 6F C7 DC 94 FE 1B EF 07 58 F1 friendlyName: example.org subject=CN = example.org issuer=CN = example.org -----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgIUY5YmshFi3LCcZ4659dQ90IUpMX0wDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5vcmcwHhcNMjAwMTE0MDAwMDExWhcNMjIw MTEzMDAwMDExWjAWMRQwEgYDVQQDDAtleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBANWClj4Jn7D4MUHMjZUcY/dx3RroU+tPgEkUjxJU P9srhkDWKIVFqzZDfFldHg3KWQWvbmHVhWGobQY6ylx5epFy62nAXMvkfkiPefne 6A6XxOomhJ71E4VeSNiY50vbRxzOOwKb+P+3gtK7KauRK42cP7xjGEQlpVTFOvjl wGmbUhZxZqS1jpjc6GMkaCIl8+oJD9kCzBjTLBLs+rw4DlFndfxim22HEbRClE48 /6eJ0AY9eZzkpuAaPTjYvqIaw+s/QWAZTJ+0Ev5YKw5PgPnb7qDPb0hbIcnG2F6/ 3Gn3GR6lVrhWjlB1fGxEFDoP8BoGIBafPf8xUlfDyRTZQxcCAwEAAaNTMFEwHQYD VR0OBBYEFHJPh7s99IvIYjWZCsiOmEOpbEaYMB8GA1UdIwQYMBaAFHJPh7s99IvI YjWZCsiOmEOpbEaYMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB AIHsx0NMJ7AgyZF/pSlG2dNhxm79K9qdDB+adXkdPpQzzIpGAPprU392SVjTYKtZ S9Y4ELrL+G/XwANLWp6UzeMZXsQfUf23LifIrvhHgjtQt/OfRIdlWjWdVOaFHg8T TZPYcHUHv836evf/2lfLbj2eZIBXoXjfOi+pDlxM/h1avrSgS25FG9Qz8PnK8xJ2 85r2xseSYxfhTEzb+N8f8RmTdClWwTT6TdeyDaQ0xwdp0W2xWKTCAkgwFyAxAcmk 5n37C8eNZWSrLQEk8i35/ziC2mpgQrNNuxGoG2U8h2RC/e5OZXgxkTqao6ul82Yt CUVAgzzpIshyiy/VrSjVKoM= -----END CERTIFICATE-----
Извлеките сертификат из архива PKCS #12 и сохраните его в файл.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -clcerts -nokeys -out extracted_example.org.pem
Извлеките и отобразите закрытый ключ из архива PKCS #12.
$ openssl pkcs12 -in example.org.p12 -password file:a -nocerts -nodes Bag Attributes localKeyID: 4D 4E 49 0B 09 48 B8 6A F7 9E 6F C7 DC 94 FE 1B EF 07 58 F1 friendlyName: example.org Key Attributes: <No Attributes> -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVgpY+CZ+w+DFB zI2VHGP3cd0a6FPrT4BJFI8SVD/bK4ZA1iiFRas2Q3xZXR4NylkFr25h1YVhqG0G OspceXqRcutpwFzL5H5Ij3n53ugOl8TqJoSe9ROFXkjYmOdL20cczjsCm/j/t4LS uymrkSuNnD+8YxhEJaVUxTr45cBpm1IWcWaktY6Y3OhjJGgiJfPqCQ/ZAswY0ywS 7Pq8OA5RZ3X8YptthxG0QpROPP+nidAGPXmc5KbgGj042L6iGsPrP0FgGUyftBL+ WCsOT4D52+6gz29IWyHJxthev9xp9xkepVa4Vo5QdXxsRBQ6D/AaBiAWnz3/MVJX w8kU2UMXAgMBAAECggEAGq6NFAej2zvI/A4SC3ZWz8988CXkht2SjI9zKbk5mawg xO1+dtk0Aj4AxjIq1VJaOamow7UpTAD+Tu795vyPYqnX3Ylaj2hol6zGc4F1wo0Y 4KIbpLm/zMTxmY/SJ9qpUmI7YaIYReyq/qbBGF218aZ7GJHRsIJ73NIhAoXDu+6g fWjRg19hSz/EM/68hPxM7vstPC0S/zdMicrnbcCtA23AJL5cyifa1W1VkMv3SW3t fswSvxLT4qDRyBxc6Xq0ULNm1Q+FMyhqtPhnUX4qi9289cal0U+9rfEhFc2q0I2T VujPz76Ncm4IGeh/lf67dHYvwy7qHaPmL3Wto1U0IQKBgQD9hMjS6k8pkz7WCLJl 0JNHw0QWczM5+q2BfQM7w8McmWX0mvKqkLiGLyIo1QS8GgR+uOoEJ8v5rNZLW1SU Q4SWExj8IQL+ofUDn4U1zbKtyRXybURC0GWGjbX8F4YJrLBmAuCeJNB6If4RTT/T q9ZFYPwRzjOO+QZMICKDZlIriQKBgQDXmY6auU8uPSkPbCuZzUPX3z+fVVwRg8mm zPGlsZ+uQvQT9qU37RpoWKxMRjjS61F2qdyxr6+++LqmAVU/QSdokJQP2A0LVCeG +zPY/6zj4Y7CI81T2r9P6eVBVhS7eg9ggrnyIqwdBykh+u0zKXDSkfp7hEoChvL0 G6Cc2+MxnwKBgAwii/5Uit+BldNm7SskdbhMp3ivoPcYga+eDUaSE0fOK+wucokp jjuWC/uKXsSmNirerQzv3rqfxE4tG/pQ1Qrd9Sc0aVFI7VJ0E0tFAlWBN5S4GDle gk2TgO+FLLxP0M3BO4E2X+hIskGfwfte0U3W25n6lcs1LlD8hMpnXm2JAoGBAJAu zUOD8gQGOtNpj68HqvtO/Ylc2HmOHOlD3cblhthPRlOjetJv6l0mD/PiclX7sTse Vc0upOWeCZTDB3OJ6wTuy1XdMrwEx3ppvD6+nay4R3Rl5QbTH2YeEYckPjEya94r DpdzwI6ZH1TuLnssl5r6rPy1d5lBDnFZmIvOMZ4ZAoGAL9m3qzKmOlqGAD32w11V 0zzr0orZPRiCXZ1SqQ1MRwKUexZeDCee4ZVZhhPtlyk8btqgG4j85RffFHbcwuv3 eGgx6S/6GzXRu0sICLrAmHT+Q2WA/PKp0kD6Abz1DXLJUjr/nF6UUkqEOrCvGXoq 2MhMYc07op+riO+4pUwfzRY= -----END PRIVATE KEY-----
Извлеките закрытый ключ из архива PKCS #12 и сохраните его в файл.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -nocerts -nodes -out extracted_example.org.key
Извлеките закрытый ключ из архива PKCS # 12 и сохраните его в защищенном паролем файле.
$ openssl pkcs12 -in example.org.p12 -password pass:samplepassword -nocerts -passout pass:privatekeypass -out extracted_example.org.key
Дополнительная информация
Расшифруем ключ перед добавлением его в архив PKCS #12.
$ openssl pkcs12 -export -name example.org -in example.org.pem -inkey example.org.enc.key -passin pass:privatekeypass -out example.org.p122 -password pass:samplepassword
Распространенные ошибки
Неверный пароль архива PKCS #12.
MAC: sha1, Iteration 2048 MAC length: 20, salt length: 8 Mac verify error: invalid password?
Неправильный пароль закрытого ключа.
140590081270208:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:537: 140590081270208:error:0906A065:PEM routines:PEM_do_header:bad decrypt:../crypto/pem/pem_lib.c:461:
Пожалуйста, не спамьте и никого не оскорбляйте.
Это поле для комментариев, а не спамбокс.
Рекламные ссылки не индексируются!
Skip to end of metadata
-
Применить ограничения страницы
-
Добавлено oleg, последняя редакция Отдел разработки Carbon Reductor DPI X дек 20, 2016
(просмотреть изменение)
Go to start of metadata
- Проверка наличия закрытого ключа в pfx-файле.
- Carbon Reductor 8
- Carbon Reductor 7
- В случае возникновения проблем с экспортом ключа:
- Error outputting keys and certificates
- Mac verify error: invalid password
- Центры, с ключами которых по умолчанию не работает выгрузка
- Центры, с ключами которых выгрузка работает
- Москва
- Выгрузка ключа в Windows 8.1
Проверка наличия закрытого ключа в pfx-файле.
Внимание: при заказе ЭЦП в удостоверяющем центре указывайте явно, что вам необходим контейнер закрытого ключа с возможностью копирования!
В выводе команд ниже должна присутствовать секция BEGIN PRIVATE KEY.
Положить ключ в /app/reductor/cfg/userinfo/p12.pfx
Выполнить:
chroot /app/reductor/ /gost-ssl/bin/openssl pkcs12 -in /cfg/userinfo/p12.pfx -nodes
Carbon Reductor 7
Скопировать проверяемый сертификат в /usr/local/Reductor/reductor_container/root/p12.pfx
После этого выполнить
. /usr/local/Reductor/etc/const
chroot_mount
chroot /usr/local/Reductor/reductor_container/ /gost-ssl/bin/openssl pkcs12 -in /root/p12.pfx -nodes
chroot_umount
В случае возникновения проблем с экспортом ключа:
- Обратитесь с вопросом о возможности экспорта закрытого ключа в Удостоверяющий центр, выдавший вам токен.
- Проверьте настройки КриптоПРО, возможно в них указан запрет экспорта закрытого ключа.
- Обратитесь в техническую поддержку утилиты, используемой для экспорта закрытого ключа.
- Убедитесь в том, что вы проводите экспорт по инструкции, а не с помощью дефолтного certmgr в Windows.
Error outputting keys and certificates
Если вы получаете ошибку в духе:
Error outputting keys and certificates 140254691182248:error:06074079:digital envelope routines:EVP_PBE_CipherInit:unknown pbe algorithm:evp_pbe.c:167:TYPE=1.2.840.113549.1.12.1.80 140254691182248:error:23077073:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 algor cipherinit error:p12_decr.c:83: 140254691182248:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:130:
это означает что ключ был экспортирован с помощью certmgr. См пункт 4.
Mac verify error: invalid password
Такая ошибка часто возникает при экспорте ключа без указания пин-кода. Попробуйте провести повторный экспорт, задав 8символьный простой pin-код.
Центры, с ключами которых по умолчанию не работает выгрузка
- удостоверяющий центр — TENSORCA3 ООО Компания Тензор, Ярославль, 76 Ярославская область
- ОАО «ИнфоТеКС», торговая марка ViPNet
- ФГУП РОСТЭК
- «НОВАГ-СЕРВИС» http://www.tax23.ru/
Центры, с ключами которых выгрузка работает
Москва
- http://nwudc.ru/moscow/
Выгрузка ключа в Windows 8.1
В ОС Windows 8.1 отмечена проблема с выгрузкой закрытого ключа с версией КриптоПро 3.9 и младше при этом вход на госуслуги работает и существует возможность подписать файл. Но вот импорт закрытого ключа не происходит. Установку КриптоПро 4 нужно делать с расширенными параметрами. В том числе оставить совместимость с версией 3.6, но убрать совместимость 3.0. Остальное устанавливать все в обязательном порядке.
Я установил openssl
на компьютере с Microsoft Windows, и я пытался сделать это преобразование:
От:
.pfx
В:
.crt
.pem
.key
Но я продолжаю получать эту ошибку, пытаясь использовать сертификат:
Mac verify error: invalid password?
5 ответы
Я также столкнулся с ошибкой «Ошибка проверки Mac: неверный пароль». Но после того, как я ввел пароль в командную строку вот так, у меня работает:
openssl pkcs12 -in path.p12 -out myoutput.pem -nocerts -nodes -password pass:<mypassword>
ответ дан 17 мар ’17, в 04:03
В моем случае это были специальные символы в пароле, которые сбивали с толку парсер аргументов. Так что звоните без -password ...
аргумент и ввод пароля по запросу сделали свое дело.
Создан 31 июля ’20, 11:07
Я столкнулся с этой ошибкой с паролем, хранящимся в текстовом файле. Несмотря на то, что пароль в файле выглядел нормально при использовании cat, vi или nano, по-видимому, openssl чувствителен к пробельным символам и разделителям строк, поскольку я полагаю, что в нашем случае файл паролей, предоставленный нам центром сертификации, был создан в Windows. Запуск dos2unix в файле позволил параметру -password file: параметр команды openssl успешно работать в Linux.
Создан 26 сен.
Обратите внимание, что, как уже было сказано, у вас должен быть пароль, который поставляется с файлом pfx/p12/… но если у них есть не поделился с вами любым паролем, возможно пароль просто пустой. В этом случае попробуйте с -passin pass:
для выражения пустого пароля.
Пример:
openssl pkcs12 -in input.p12 -out output.pem -nocerts -nodes -passin pass:
Если и это не сработает, я настоятельно рекомендую вам связаться с владельцем файла и добросовестно спросить у него пароль, который использовался, чтобы вы могли выполнить преобразование.
ответ дан 23 мар ’22, в 09:03
Для решения xelat оно больше не работает, если вы создаете .pfx
с OpenSSL 3, потому что AES-256-CBC является новым шифром по умолчанию, несмотря на то, что большинство устройств его не поддерживают. Чтобы решить эту проблему, используйте эту команду:
openssl pkcs12 -in path.p12 -out myoutput.pem -nocerts -nodes -password pass:<mypassword> -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES -nomac
ответ дан 10 апр.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками
openssl
pkcs#12
or задайте свой вопрос.
Итак понадобилось мне получить доступ к единому реестру запрещенных ресурсов, но все оказалось не так просто как хотелось бы.
Вводная:
Сервер на Debian 7
ЭЦП на etoken, в нутре контейнера
ViPNet
Необходимо автоматерировать процесс регулярного обращения к реестру запрещенных ресурсов и выгрузки с него списка «плохишей»
Начало войны — Несправедливость:
Под Виндой все работает великолепно. Достаточно установить ViPNet CSP для управления сертификатами и ViPNet CryptoFile для подписи файлов. Все это есть на сайте производителя. Но для Линуксов ничего есть только программа ViPNet CSP, да и та в бета-тестирвании.
Битва первая — Драйвер:
Электронные ключи eToken выпускаются компанией Аладин Р.Д., драйвера можно скачать на соответствующем сайте. Приятно порадовало есть драйвера для платформ отличный от Windows.
Для моего Debian это выглядило так:
Устанавливаем версию java от Oracle. Смотрим версию Java:
если установлены пакеты java OpenJDK — удаляем их:
#apt-get remove OpenJDK*
Устанавливаем java от Oracle:
#apt-key adv —keyserver keyserver.ubuntu.com —recv-keys EEA14886
#apt-get install oracle-java7-installer
Устанавливаем необходимое для работы с ключом Etoken окружение:
#apt-get install ia32-libs libhal1 opensc pcscd
Пакеты libhal1 и libpcslite1 у Вас уже должны быть установлены. Смотрите какие версии установлены следующей командой:
#dpkg -l | grep libhal1
#dpkg -l | grep libpcsclite1
Качаем и устанавливаем соответствующую версию библиотек для архитектуры x64 с репозиториев Debian:
#dpkg -x libpcsclite1_1.8.4-1_amd64.deb libpcsclite1-amd64
#dpkg -x libhal1_0.5.14-8_amd64.deb libhal1-amd64
#cp libpcsclite1-amd64/usr/lib/x86_64-linux-gnu/libpcsclite.so.1.0.0 /lib64/
#ln -s /lib64/libpcsclite.so.1.0.0 /lib64/libpcsclite.so.1
#cp libhal1-amd64/usr/lib/libhal.so.1.0.0 /usr/lib64/
#ln -s /usr/lib64/libhal.so.1.0.0 /usr/lib64/libhal.so.1
Установка драйвера SafenetAuthenticationClient. Сама эта програмулька предоставляется компанией Аладин вместе с технической поддержкой и просто так скачать ее, к сожалению, нельзя. Но я нашел ее на сайте ПромСвязьБанка.
#dpkg -i SafenetAuthenticationClient-8.0.5-0_amd64.deb
#ln -s /usr/lib64/libeTPkcs11.so /usr/lib/
Перезагружаемся (этого просит у нас драйвер SafenetAuthenticationClient) и проверяем работу ключа, он должен быть виден в списке:
Список слотов на eToken можно увидеть так:
$ pkcs11-tool —module /usr/lib/libeTPkcs11.so -L
Available slots:
Slot 0 (0x0): AKS ifdh [Main Interface] 00 00
token label: eToken
token manuf: SafeNet, Inc.
token model: eToken
token flags: rng, login required, PIN initialized, token initialized, other flags=0x200
serial num : 01c0cfc0
Slot 1 (0x1):
(empty)
…
Список обектов в определенном слоте можно увидеть так:
$ pkcs11-tool —module /usr/lib/libeTPkcs11.so —slot 0 -Ol
Data object 63307778
label: ‘ViPNet Container’
application: ‘rnd-f-9820-5be2-a8f9-e2d6-e2fa-2d7f-5593’
app_id: <empty>
flags: modifiable
Data object 141754372
label: ‘ViPNet KeyInfo’
application: »
app_id: <empty>
flags: modifiable
…
Содержимое объекта в слоте можно посмотреть так:
$pkcs11-tool —module /usr/lib/libeTPkcs11.so —slot 0 -a ‘ViPNet Container’ -y data -r
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
….
В общем и целом делаем вывод, что драйвера на eToken встали великолепно, НО ViPNet CSP для линукс его в упор не видит и естественно открыть свой контейнер не может.
Для проверки еще попытался подойти к вопросу со стороны. Открываем наш любимый браузер — Mozilla Firefox, и пользуемся вот такой инструкцией:
[Инструкция использования eToken]
Инструкция использования eToken
1. Откройте настройки Firefox (Firefox | Настройки). Выберите пункт Дополнительно, перейдите на вкладку Шифрование и нажмите на кнопку Устройства защиты.
2. В окне Менеджера устройств нажмите на кнопку Загрузить для загрузки библиотеки поддержки PKCS#11.
3. В появившемся диалоге Загрузка устройства PKCS#11 задайте Имя модуля (например Aladdin eToken).
4. Укажите путь к файлу библиотеки. В ОС Linux в поле Имя файла модуля введите: /usr/lib/libeTPkcs11.so
Нажмите кнопку OK.
Теперь если нажать на кнопку Просмотр сертификатов и ввести PIN-код (запрос на ввод мастер-пароля для [имя eToken]) на вкладке Ваши сертификаты будут видны сертификаты хранящиеся в eToken.
Но к сожалению и Firefox тоже не увидел содержимого eToken, хотя само устройство идентифицировал.
Битва проиграна….
Битва вторая — Контейнер
Зализав раны от побоища я обратился за помощью к Windows и таки корректно извлек контейнер из eToken с помощью ViPNet CSP. А так же из ViPNet CSP экспортировал ЭЦП в формат PKCS#12 в файл name.pfx. Счастью не было придела. Но оказалось:
1. На Windows без установленного ViPNet CSP файл с сертификатом name.pfx не рапаковывается, ругаясь на неправильный пароль. Хотя пароль вводился 100% правильный.
Если ViPNet CSP установить то все распаковывается на ура. Без ViPNet CSP так же нельзя провести ниодин экспорт. Эта зараза помещает сикретный ключ в свой собственный контейнер с отдельным паролем. А при удалении забирает все контейнеры на небеса.
2. Утилита P12FromGostCSP так же не может произвести экспорт сертификата в формате PKCS#12 ругаясь на то, что с ViPNet она работать не умеет.
3. На Debian средствами OpenSSL просмотреть файл не удалось. Хотя пароль опять же вводился 100% правильный.
# openssl pkcs12 -in ./name.pfx -nodes
Enter Import Password:
Mac verify error: invalid password?
Попытка включить поддержку шифрования по ГОСТ для OpenSSL результатов не принесла.
В общем и целом ситуация складывается безвыходная — с конейнерами ViPNet может работать только сам ViPNet и больше никто. Средств для автоматизации процесов нет ни под Windows ни под Linux.
Битва проиграна…
Битва Третья — Другой криптопровайдер
Еще предстоит…
OpenSSL
Эти команды позволяют создавать операторы, сертификаты, закрытые ключи и делать другие разные задачи.
Generate a new private key and Certificate Signing Request
openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
Generate a self-signed certificate (see How to Create and Install an Apache Self Signed Certificate for more info)
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
Generate a certificate signing request (CSR) for an existing private key
openssl req -out CSR.csr -key privateKey.key -new
Generate a certificate signing request based on an existing certificate
openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key
Remove a passphrase from a private key
openssl rsa -in privateKey.pem -out newPrivateKey.pem
Если Вам необходимо проверить информацию в сертификат, CSR или закрытого ключа, используйте эти команды. Вы также можете проверить CSR и проверки сертификатов с помощью наших онлайн-инструментов.
Check a Certificate Signing Request (CSR)
openssl req -text -noout -verify -in CSR.csr
Check a private key
openssl rsa -in privateKey.key -check
Check a certificate
openssl x509 -in certificate.crt -text -noout
Check a PKCS#12 file (.pfx or .p12)
openssl pkcs12 -info -in keyStore.p12
Эти команды позволяют преобразовать сертификаты и ключи в различные форматы, чтобы сделать их совместимыми с конкретными типами серверов или программного обеспечения. Например, вы можете конвертировать обычный pem, который будет работать с Apache в pfx-Файл (Формат pkcs#12-файл) и использовать его с Tomcat или IIS. Используйте наш SSL конвертер конвертировать сертификаты без возиться с openssl.
Convert a DER file (.crt .cer .der) to PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
Convert a PEM file to DER
openssl x509 -outform der -in certificate.pem -out certificate.der
Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
Вы можете добавить -nocerts только на выходе закрытого ключа или добавить -nokeys, чтобы только вывести сертификаты.
Convert a PEM certificate file and a private key to PKCS#12 (.pfx .p12)
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Подписываем файл запроса на Роскомнадзор:
#nano openssl.cnf
…
openssl_conf = openssl_def
[ new_oids ]
…
# OpenSSL GOST
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
default_algorithms = ALL
engine_id = gost
# dynamic_path = /usr/local/lib/engines/libgost.so
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
Проверяем наличее ГОСТ
#openssl ciphers | tr «:» «n» | grep GOST
проверяем, что у нас нормальный (содержит сертификат и закрытый ключ) PKCS#12 командой:
#openssl pkcs12 -in p12.pfx -nodes
конвертируем полученный на Windows PKCS#12 в PEM:
#openssl pkcs12 -in p12.pfx -out provider.pem -nodes -clcerts
#iconv -f UTF8 -t WINDOWS-1251 request.xml -o request.xml
подписываем xml файл нашим сертификатом:
#openssl smime -sign -in request.xml -out request.bin -signer provider.pem -outform DER
Остались не раскрытыми:
- проблемы связанные с ruToken
Ссылки на софт:
- КРИПТО-CSP
- ЛИССИ-CSP, также: утилита P12FromGostCSP, Библиотеки PKCS#11, таинственные утилиты
- ViPNet CSP
- eToken — Аладин Р.Д.
…
openssl_conf = openssl_def
[ new_oids ]
…
# OpenSSL GOST
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
default_algorithms = ALL
engine_id = gost
# dynamic_path = /usr/local/lib/engines/libgost.so
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
I’m quite new to Linux (Ubuntu 10.10) and I’m having a hard time trying to import keys and certificates for a VPN connection to my work office server.
- I have a
.p12
file which is the key I’m guessing. - I also have a
.ovpn
file which could be the config settings for the connection.
How would I import these files to get a connection up and running?
Any instructions would be greatly appreciated.
asked Apr 15, 2011 at 22:05
To complement @barbaz answer:
You need to convert the .p12 file to CA certificate, client certificate and client private key.
The command line commands for these actions are:
openssl pkcs12 -nocerts -in default.p12 -out userkey.pem
openssl pkcs12 -nokeys -clcerts -in default.p12 -out usercert.pem
openssl pkcs12 -nokeys -cacerts -in default.p12 -out userca.pem
It will ask for a password for your client private key, you write what you want there, and remember that password for later.
Then you choose the option ‘Certificate (TLS)’, and select the three files, and add the password you added in the command line.
answered Apr 8, 2017 at 18:37
Nicolay77Nicolay77
4186 silver badges7 bronze badges
1
If you are unfamiliar with openvpn, you might want to try using NetworkManager to configure it. Afaik there is a package called network-manager-openvpn
that will enable openvpn in your NetworkManager VPN section. The .p12
file should already contain the CA certificate, the client certificate and the client private key. If NetworkManager cannot use that file (but only accepts each of the three files individually in PEM format) you might need to convert your file.
If though you decide to run openvpn yourself as root, the configuration directive to use your file is
pkcs12 client.p12
as documented in openvpn(8)
.
answered Jun 17, 2011 at 22:05
barbazbarbaz
2,9161 gold badge16 silver badges21 bronze badges