ページ更新日:2026/05/07
.pfx(.p12)ファイルは、SSL証明書・中間CA証明書・秘密鍵が1つにまとめられたPKCS#12形式のファイルです。
IISのバックアップやクラウド環境からエクスポートすると、この形式で入手することがあります。
Apache・Nginx・Tomcat などに移行する際や、証明書と秘密鍵を個別に必要とする場面で、OpenSSLを使って各ファイルを取り出すことができます。
PFXから証明書(サーバー証明書)のみを取り出します。
openssl pkcs12 -in server.pfx -clcerts -nokeys -out server.crt
-clcerts:クライアント証明書(ここではサーバー証明書)のみを出力-nokeys:秘密鍵を出力しない# パスフレーズなし(Apache/Nginx の自動起動向け) openssl pkcs12 -in server.pfx -nocerts -nodes -out server.key # パスフレーズあり(取り出した後に別途解除する場合) openssl pkcs12 -in server.pfx -nocerts -out server.key
-nocerts:証明書を出力しない-nodes:秘密鍵にパスフレーズを設定しない(No DES)openssl pkcs12 -in server.pfx -cacerts -nokeys -out intermediate.crt
-cacerts:中間CA証明書のみを出力Nginx では証明書と中間CA証明書を結合した1つのファイルを使います。
openssl pkcs12 -in server.pfx -nokeys -out fullchain.pem
※ 出力されるファイルには証明書・中間CA証明書の順に含まれます(サーバー証明書が先)。
取り出した後、証明書・秘密鍵・CSRが対応しているかをMD5ハッシュで確認することをおすすめします。
# 秘密鍵のMD5 openssl rsa -modulus -noout -in server.key | openssl md5 # 証明書のMD5 openssl x509 -modulus -noout -in server.crt | openssl md5
両方のMD5が一致していれば、この秘密鍵と証明書はセットです。一致しない場合は別の証明書・秘密鍵です。
OpenSSL 3.x では古いRC2暗号で保護されたPFXファイルが読み込めない場合があります。
その際は -legacy オプションを追加してください。
openssl pkcs12 -legacy -in server.pfx -nocerts -nodes -out server.key
📌 関連ページ:
opensslでpfxファイル作成
SSL証明書のファイル形式の違い(.crt .cer .pem .p7b .pfx .p12)
OpenSSLコマンド集