opensslコマンドを使って、pfx形式、PKCS#12形式(IISのSSLサーバ証明書をエクスポートしたものなど)をPEM形式(ApacheやOpenSSLの標準)に変換する。
$openssl pkcs12 -in input.pfx -out output.pem
この場合、input.pfxに含まれているのもすべてがoutput.pemに出力される。
(秘密鍵、サーバ証明書、中間証明書、ルート証明書)
サーバ証明書や秘密鍵を個別に取り出すには以下のようにする。
秘密鍵のみ取り出す
$openssl pkcs12 -in input.pfx -nocerts -out output_key.pem
抜き出した秘密鍵を暗号化する必要がなければ「-nodes」を付ける
$openssl pkcs12 -in input.pfx -nocerts -nodes -out output_key.pem
サーバ証明書のみ取り出す
$openssl pkcs12 -in input.pfx -clcerts -nokeys -out output_crt.pem
input.pfx・・・pfx形式、PKCS#12形式の証明書
output_crt.pem・・・PEM形式の証明書
output_key.pem・・・PEM形式の秘密鍵
WindowsでOpenSSLを使用するには以下のサイトからWin32 OpenSSLをダウンロードするか、Cygwin+OpenSSLが必要になる。
http://www.slproweb.com/products/Win32OpenSSL.html