011-596-6358

対応時間:平日 10:00~17:00

OpenSSL による PKCS #12 形式の操作方法

1. はじめに

PKCS #12 は IIS の SSLサーバ証明書のバックアップ・エクスポート等に用いられる、秘密鍵と証明書を 1つのファイルに格納する形式です。
OpenSSL を用いて PKCS #12 形式のファイルを操作することにより、SSLサーバ証明書と秘密鍵をIIS とその他の Web サーバの間でやりとりすることができます。

2. PKCS #12 形式のファイルから SSLサーバ証明書と秘密鍵を取り出す

以下、ファイル名はお客様の環境に合わせ読み換えてご参照ください。

  1. 下記コマンドで、PKCS #12 ファイル sample.p12 から秘密鍵を取り出し、暗号化せずに sample.key に保存します。
    注:ここでは、秘密鍵を暗号化せずに保存します。サーバ機再起動時などに Apache をスムースに起動させるためです。ファイルのパーミッションにお気をつけください。
    セキュリティーに問題を感ぜられる場合には、秘密鍵を暗号化して保存してください。ただし、サーバの起動時にパスフレーズを答えられないと Apache が起動しませんのでご注意ください。

    $ openssl pkcs12 -in sample.p12 -nocerts -nodes -out sample.key

    ※保存した sample.key ファイルをそのままご使用できない場合、
    “-----BEGIN RSA PRIVATE KEY-----”の行から“-----END RSA PRIVATE KEY-----”
    までの行をハイフンを含めてご使用ください。

  2. 下記コマンドで、PKCS #12 ファイル sample.p12 から SSLサーバ証明書を取り出し、sample.crt に保存します。

    $ openssl pkcs12 -in sample.p12 -clcerts -nokeys -out sample.crt

    ※保存した sample.crt ファイルをそのままご使用できない場合、
    “-----BEGIN CERTIFICATE-----”の行から“-----END CERTIFICATE-----”
    までの行をハイフンを含めてご使用ください。

  3. 下記コマンドで、PKCS #12 ファイル sample.pfx から中間 CA 証明書を取り出し、sample.ca-bundle に保存します。
    (中間 CA 証明書が無い場合、sample.ca-bundle は空ファイルになります)

    $ openssl pkcs12 -in sample.pfx -cacerts -nokeys -out sample.ca-bundle

    ※保存した sample.ca-bundle ファイルをそのままご使用できない場合、
    “-----BEGIN CERTIFICATE-----”の行から“-----END CERTIFICATE-----”
    までの行をハイフンを含めてご使用ください。

3. SSLサーバ証明書・中間 CA 証明書・秘密鍵から PKCS #12 形式のファイルを作る

以下、ファイル名はお客様の環境に合わせ読み換えてご参照ください。

  1. 下記コマンドで、SSLサーバ証明書 sample.crt と秘密鍵 sample.key から PKCS #12 ファイル sample.pfx を作成します。

    $ openssl pkcs12 -export -in sample.crt -inkey sample.key -out sample.pfx

  2. 下記コマンドで、SSLサーバ証明書 sample.crt、秘密鍵 sample.key と中間 CA 証明書 sample.ca-bundle から PKCS #12 ファイル sample.pfx を作成します。

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

注:この文書に記載されている情報は予告なしに変更されることがあります。この文書に記載されている情報に従ってユーザが操作を行い、いかなる損害を被ろうとも、当社は一切の責任を負いません。また、ユーザは自己の責任において使用する事に同意したものとみなされます。