Beatles (Платежи) : Конвертация сертификата клиента

Конвертирование хранилища сертификатов типа PKCS12

Для осуществления конвертирования сертификатов по приведенным здесь методам необходимым программным инструментом является утилита OpenSSL (является частью стандартного дистрибутива Linux)

Переконвертирование cуществующего хранилища

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

  • Шаг первый: извлечение сертификата и приватного ключа из хранилища

openssl pkcs12 -in имя_файла_1 -out имя_файла_2 -passin pass:пароль_1 -passout pass:пароль_2
имя_файла_1 - имя файла хранилища
имя_файла_2 - имя создаваемого файла, который будет содержать сертификат и приватный ключ
пароль_1 - пароль на хранилище
пароль_2 - пароль на приватный ключ (новый)

  • Шаг второй: создание хранилища сертификатов

openssl pkcs12 -export -in имя_файла_1 -out имя_файла_2 -passin pass:пароль_1 -passout pass:пароль_2
имя_файла_1 - имя файла, содержащего сертификат и приватный ключ
имя_файла_2 - имя создаваемого хранилища
пароль_1 - пароль на приватный ключ
пароль_2 - пароль на хранилище, должен совпадать с паролем на приватный ключ

Создание нового хранилища

Данный метод позволяет создавать хранилище на основании файла сертификата и файла соответствующего ему приватного ключа
openssl pkcs12 -export -in имя_файла_1 -inkey имя_файла_2 -out имя_файла_3 -passin pass:пароль_1 -passout pass:пароль_2
имя_файла_1 - имя файла, содержащего сертификат
имя_файла_2 - имя файла, содержащего приватный ключ
имя_файла_3 - имя создаваемого хранилища
пароль_1 - пароль на приватный ключ
пароль_2 - пароль на хранилище, должен совпадать с паролем на приватный ключ

Дополнительно

После переконвертации рекомендуется убедиться в корректности созданного хранилища:

  • openssl pkcs12 -in имя_файла
  • info -noout -passin pass:пароль, где

имя_файла - имя файла хранилища
пароль - пароль на хранилище
Если хранилище было сформировано корректно, данная команда распечатает список сертификатов, содержащихся в нем.

Примеры

На входе есть хранилище сертификатов test.p12 без пароля. На выходе необходимо

  1. получить хранилище test_new.p12 с паролем 123456.
  2. openssl pkcs12 -in test.p12 -out test.pem -passin pass: -passout pass:123456
  3. openssl pkcs12 -export -in test.pem -out test_new.p12 -passin pass:123456 -passout pass:123456

Ссылки

{+}http://www.openssl.org/docs/apps/pkcs12.html+ - документация программы OpenSSL