PKCS#12証明書(pfx)への変換、分解方法
FQDNライセンスの証明書を、複数のサーバで利用される場合、証明書、中間証明書、秘密鍵をコピーして利用頂く必要がございますが、サーバOSが異なる場合、単純なコピーのみでは利用できない場合があります。
Windowsで利用されるIISに証明書をインストールされている場合、この証明書をエクスポートしてApacheでも利用するためには、
- IISからPKCS#12証明書のエクスポート
- ApacheなどのOpenSSLが利用可能な環境にPKCS#12証明書をアップロード
- OpenSSLコマンドを利用してPKCS#12証明書から秘密鍵を取り出す
事が必要です。
また、その逆にApacheで秘密鍵とCSRを作成して証明書を発行している場合、この証明書をIISでも利用するためには、PKCS#12形式に変換する必要があります。
・PKCS#12証明書(pfx)の分解(秘密鍵の取り出し)方法
- PKCS#12証明書をエクスポートし、OpenSSLインストール済みのLinuxサーバにアップロードしてください。
エクスポートする際、任意のパスワードを設定する必要がありますので、設定したパスワードを控えておきます。 - その後、OpenSSLがインストールされたLinux環境で下記コマンド実行します。
ここでは下記の場合の設定例となります。 - 秘密鍵出力後、取り出した秘密鍵(example.key)を編集し、
-----BEGIN PRIVATE KEY----- から
の文字列のみが残るようにヘッダ部分を削除して保存します。
-----END PRIVATE KEY----- まで
抽出対象ファイル
PKCS#12証明書 | : example.pfx |
---|---|
パスワード | : examplepass |
出力後のファイル名
秘密鍵 | : example.key |
---|
コマンド
# openssl pkcs12 -in example.pfx -nocerts -nodes -out example.key -passin pass:examplepass
・PKCS#12証明書(pfx)への変換方法
OpenSSLがインストールされたLinux環境で下記コマンド実行します。
ここでは下記の場合の設定例となります。
変換対象ファイル
証明書 | : example.crt |
---|---|
中間証明書 | : exampleca.crt |
秘密鍵 | : example.key |
変換後のファイル名・パスワード
PKCS#12証明書 | : example.pfx |
---|---|
パスワード | : examplepass |
IIS上の識別名
フレンドリ名 | : 20190423_example |
---|
※ フレンドリ名はIIS上の他のフレンドリ名と重複しないように設定してください。
コマンド
# openssl pkcs12 -export -in example.crt -inkey example.key -certfile exampleca.crt -out example.pfx -passout pass:examplepass -name "20190423_example"
※ サーバ環境やアップデートにより利用出来ない場合がございます。
※ 記載内容につきましては免責とさせて頂きます。