Как преобразовать сертификаты в поддерживаемый формат

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

В этом документе рассказывается, как преобразовать сертификат TLS и связанный с ним закрытый ключ в формат PEM или PFX (PKCS #12).

Apigee Edge поддерживает хранение в хранилищах ключей и доверенных хранилищах только сертификатов в формате PEM или PFX. Чтобы преобразовать сертификаты из любого существующего формата в PEM или PFX, используется набор инструментов OpenSSL. Это можно сделать в любой среде, где доступен OpenSSL.

Подготовка

Прежде чем выполнять описанные в этом документе действия, убедитесь, что вы понимаете следующие темы:

  • Если вы не знакомы с форматами PEM или PFX, прочитайте статью о TLS/SSL.
  • Если вы не знакомы с форматами сертификатов, прочитайте статью Форматы сертификатов SSL.
  • Если вы не знакомы с библиотекой OpenSSL, прочитайте статью OpenSSL.
  • Если вы хотите использовать примеры командной строки из этого руководства, установите или обновите клиент OpenSSL до последней версии.

Как преобразовать сертификат из формата DER в формат PEM

В этом разделе рассказывается, как преобразовать сертификат и связанный с ним закрытый ключ из формата DER в формат PEM.

  1. Перенесите файл, содержащий полную цепочку сертификатов (certificate.der) и связанный с ней закрытый ключ (private_key.der), который вы хотите преобразовать в формат PEM, на компьютер, где установлен OpenSSL, с помощью scp, sftp или любой другой утилиты.

    Например, используйте команду scp, чтобы перенести файл в каталог /tmp на сервере с OpenSSL, как показано ниже:

    scp certificate.der servername:/tmp
    scp private_key.der servername:/tmp

    где servername – название сервера, на котором установлен OpenSSL.

  2. Войдите в систему на компьютере, на котором установлен OpenSSL.
  3. В каталоге, где находятся сертификаты, выполните следующую команду, чтобы преобразовать сертификат и связанный с ним закрытый ключ из формата DER в формат PEM:
    openssl x509 -inform DER -in certificate.der -outform PEM -out certificate.pem
    openssl rsa -inform DER -in private_key.der -outform PEM -out private.key
  4. Убедитесь, что сертификат преобразован в формат PEM.

Как преобразовать сертификат из формата P7B в формат PEM

В этом разделе описано, как преобразовать сертификаты из формата P7B в формат PEM.

  1. Перенесите файл, содержащий полную цепочку сертификатов (certificate.p7b), который вы хотите преобразовать в формат PEM, на компьютер, где установлен OpenSSL, с помощью scp, sftp или другой утилиты.

    Например, используйте команду scp, чтобы перенести файл в каталог /tmp на сервере с OpenSSL, как показано ниже:

    scp certificate.p7b servername:/tmp

    где servername – название сервера, на котором установлен OpenSSL.

  2. Войдите в систему на компьютере, на котором установлен OpenSSL.
  3. В каталоге, где находятся сертификаты, выполните следующую команду, чтобы преобразовать сертификат из формата P7B в формат PEM:
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
  4. Убедитесь, что сертификат преобразован в формат PEM.

Как преобразовать сертификат из формата PFX в формат PEM

В этом разделе рассказывается, как преобразовать сертификаты TLS из формата PFX в формат PEM.

При преобразовании файла PFX в формат PEM OpenSSL помещает все сертификаты и закрытый ключ в один файл. Вам нужно будет открыть файл в текстовом редакторе, скопировать каждый сертификат и закрытый ключ (включая операторы BEGIN/END) в отдельные текстовые файлы и сохранить их как certificate.pfx, Intermediate.pfx (если применимо), CACert.pfx и privateKey.key соответственно.

Apigee поддерживает формат PFX/PKCS #12, но формат PEM удобнее по многим причинам, в том числе для проверки.

  1. Перенесите сертификаты и закрытый ключ (certificate.pfx, Intermediate.pfx CACert.pfx, privateKey.key), которые вы хотите преобразовать в формат PEM, на устройство, где установлен OpenSSL, с помощью scp, sftp или другой утилиты.

    Например, используйте команду scp, чтобы перенести файл в каталог /tmp на сервере с OpenSSL, как показано ниже:

    scp certificate.pfx servername:/tmp

    где servername – название сервера, на котором установлен OpenSSL.

  2. Войдите в систему на компьютере, на котором установлен OpenSSL.
  3. В каталоге, где находятся сертификаты, выполните следующую команду, чтобы преобразовать сертификат из формата P7B в формат PEM:
    openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
  4. Убедитесь, что сертификат преобразован в формат PEM.

Как преобразовать сертификат из формата P7B в формат PFX

В этом разделе рассказывается, как преобразовать TLS-сертификаты из формата P7B в формат PFX.

Чтобы преобразовать файл в формат PFX, вам также понадобится закрытый ключ.

  1. Перенесите сертификат (certificate.p7b), который вы хотите преобразовать в PFX, на устройство с установленным OpenSSL, используя scp, sftp или другую утилиту.

    Например, используйте команду scp, чтобы перенести файл в каталог /tmp на сервере с OpenSSL, как показано ниже:

    scp certificate.p7b servername:/tmp
    scp private_key.key servername:/tmp

    где servername – название сервера, на котором установлен OpenSSL.

  2. Войдите в систему на компьютере, на котором установлен OpenSSL.
  3. В каталоге, где находятся сертификаты, выполните следующие команды, чтобы преобразовать сертификат из формата P7B в формат PFX и экспортировать сертификаты объекта и промежуточного ЦС в отдельные файлы:
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    
    openssl pkcs12 -export -in certificate.cer -inkey private_key.key -out certificate.pfx -certfile CACert.cer

Как проверить, что сертификат имеет формат PEM

В этом разделе рассказывается, как проверить, что сертификат имеет формат PEM.

  1. Чтобы посмотреть сертификат в формате PEM, выполните следующую команду:
    openssl x509 -in certificate.pem -text -noout
  2. Если вы можете просмотреть содержимое сертификата в понятном для человека формате без каких-либо ошибок, значит сертификат имеет формат PEM.
  3. Если сертификат имеет другой формат, вы увидите ошибки, подобные следующим:
    unable to load certificate
    12626:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTED CERTIFICATE View DER encoded Certificate

Как упаковать файлы ключа и сертификата PEM в PKCS12/PFX

  1. Убедитесь, что файл закрытого ключа имеет формат PEM. Если у вас есть отдельные PEM-файлы для цепочки сертификатов, откройте каждый из них в текстовом редакторе и объедините в один файл, как показано ниже:
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  2. Перенесите файлы на компьютер, на котором установлен OpenSSL, с помощью scp, sftp или другой утилиты:
    scp certificate.pem servername:/tmp
    scp private.key servername:/tmp
  3. Войдите в систему на компьютере, на котором установлен OpenSSL.
  4. В каталоге, где находятся файлы, выполните следующую команду, чтобы упаковать их в файл PKCS12 с псевдонимом myalias. Введите пароль:
    openssl pkcs12 -export -in certificate.pem -inkey private.key -out keystore.pfx -name myalias