証明書をサポートされている形式に変換する

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. PEM 形式に変換する完全な証明書チェーン(certificate.der)と関連する秘密鍵(private_key.der)を含むファイルを、scpsftp などのユーティリティを使用して、OpenSSL がインストールされているマシンに転送します。

    たとえば、scp コマンドを使用して、OpenSSL を含むサーバーの /tmp ディレクトリにファイルを転送します。

    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. PEM 形式に変換する完全な証明書チェーン(certificate.p7b)を含むファイルを、scpsftp、またはその他のユーティリティを使用して、OpenSSL がインストールされているマシンに転送します。

    たとえば、scp コマンドを使用して、OpenSSL を含むサーバーの /tmp ディレクトリにファイルを転送します。

    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 はすべての証明書と秘密鍵を 1 つのファイルに格納します。ファイルをテキスト エディタで開き、各証明書と秘密鍵(BEGIN / END ステートメントを含む)を個別のテキスト ファイルにコピーし、それぞれ certificate.pfxIntermediate.pfx(該当する場合)、CACert.pfxprivateKey.key として保存する必要があります。

Apigee では PFX/PKCS #12 形式がサポートされていますが、PEM 形式は検証など多くの理由で便利です。

  1. PEM 形式に変換する証明書と秘密鍵(certificate.pfxIntermediate.pfxCACert.pfxprivateKey.key)を、scpsftp、またはその他のユーティリティを使用して、OpenSSL がインストールされているマシンに転送します。

    たとえば、scp コマンドを使用して、OpenSSL を含むサーバーの /tmp ディレクトリにファイルを転送します。

    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. PFX に変換する証明書(certificate.p7b)を、scpsftp、またはその他のユーティリティを使用して、OpenSSL がインストールされているマシンに転送します。

    たとえば、次のように scp コマンドを使用して、OpenSSL を含むサーバーの /tmp ディレクトリにファイルを転送します。

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

    ここで、servername は OpenSSL を含むサーバーの名称です。

  2. OpenSSL がインストールされているマシンにログインします。
  3. 証明書が配置されているディレクトリから、次のコマンドを実行して証明書を P7B 形式から PFX 形式に変換し、エンティティ証明書と中間 CA 証明書を個別のファイルにエクスポートします。
    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 ファイルがある場合は、各ファイルをテキスト エディタで開き、次のように 1 つのファイルに連結します。
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  2. scpsftp、またはその他のユーティリティを使用して、OpenSSL がインストールされているマシンにファイルを転送します。
    scp certificate.pem servername:/tmp
    scp private.key servername:/tmp
  3. OpenSSL がインストールされているマシンにログインします。
  4. ファイルが配置されているディレクトリから次のコマンドを実行して、エイリアス myalias が設定された PKCS12 ファイルにファイルをパッケージ化します。プロンプトが表示されたら、適切なパスワードを入力します。
    openssl pkcs12 -export -in certificate.pem -inkey private.key -out keystore.pfx -name myalias