インポートしたサーバ証明書の変換(IIS6.0→Tomcat4)

ここではTomcatでのサーバ証明書申請の方法ではなく、すでにIISで構築した証明書をTomcatに移行する際の手順です。

○アプリケーションサーバ
移行前 IIS6.0(Windows2003Server)
移行後 Tomcat4.1.39

IISで利用できるサーバ証明書の形式(?)は『.pfx』ファイルでTomcatではPKCS12『.p12』ファイルです。

詳細は以下に続きますがopensslを使って『.pfx』→『.pem』→『.p12』と変換する必要があります。

■IISから.pfxファイルをエクスポート
IISマネージャから.pfxファイルをエクスポートする。
『.pfxファイルに現在の証明書をエクスポートする』
※『.pfx』ファイルには秘密鍵も一緒にエクスポート

『.pfx』ファイル自体のパスワード(以下パスフレーズと呼ぶ)を設定
パスフレーズは忘れないように

■OpenSSLを利用して.pfxファイルから.p12ファイルへの変換を行う。
Openssl version Openssl 0.9.8k 25 Mar 2009
Opensslはソースコードでの公開なので、自分でビルドする必要がありますが、Windows用にインストーラーを公開しているサイトがあります。

■.pfxファイルから.pemファイルへの変換
○変換
------------------------------------------------------------------------------------
pkcs12 –in ****.pfx –out ****.pem

OpenSSL>pkcs12 –in ****.pfx –out ****.pem
Enter Import Password:{IISで設定したパスフレーズ}
MAC verified OK
Ender PEM pass phrase:{新しいパスフレーズ:上と同じでもOK}
Verifying – Enter PEM pass phrase:{新しいパスフレーズ(確認)}
OpenSSL>
------------------------------------------------------------------------------------

※ここでパスフレーズを入力した時、何もプロンプト上では表示されない。
変化は無いがしっかりキーを受け付けているので気にせずパスフレーズを入力後リターン!

■.pemファイルから.p12ファイルへの変換
○変換
------------------------------------------------------------------------------------
pkcs12 –export –in ****.pem –out ****..p12 –neme “New Tomcat”

OpenSSL>pkcs12 –export –in ****.pem –out ****..p12 –neme “New Tomcat”
Loding ‘screen’ into random state - done
Enter pass phrase for ****.pem:{Pem変換で設定したパスフレーズ}
Ender Export password :{新しいパスフレーズ:上と同じでもOK}
Verifying – Ender Export password: {新しいパスフレーズ(確認)}
OpenSSL>
------------------------------------------------------------------------------------

■Tomcatのサーバ証明書の設定
○Server.xmlファイル

  
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="443" enableLookups="true"
               scheme="https" secure="true" acceptCount="100"
               useURIValidationHack="false" disableUploadTimeout="true"
               keystore="@fullpath" keypass="@{p12変換で設定したパスフレーズ}" 
               keystoreType="PKCS12" 
               clientAuth="false" sslProtocol="TLS" />
<追記>拡張子『.pfx』から『.p12』へ変換するのはファイル名(拡張子)を変更するだけで良いという記述を発見しました。 ※この方法はまだ試していませんので何とも言えませんが・・・機会があればやってみることにします。