永遠のプログラマ☆

還暦過ぎてもプログラマ(40年)

IISからエクスポートしたSSL証明書をkeystore(JKS)形式に変更

こんにちは。

Windows IISにインストールしたSSL証明書

java環境で使えるSSL証明書に変換メモ・


JavaでのSSL証明書はkeystore(JKS)という
違った形式のものを使用するため変換が必要。
Windows 環境で作業。

1. opensslコマンドで秘密キーと証明書に分解

openssl pkcs12 -in your.ssl.com.pfx -out your.ssl.com.txt
Enter Import Password: [エクスポート時に指定したパスワードを入力]
Enter PEM pass phrase: [任意のパスワードを入力]
Verifying - Enter PEM pass phrase: [パスワードを再入力]


your.ssl.com.txtファイルをメモ帳で開き
-----BEGIN ENCRYPTED PRIVATE KEY-----
以下を
your.ssl.com.key
として保存。

-----BEGIN CERTIFICATE-----
以下を
your.ssl.com.cer
として保存。


別途、証明書入手先から中間証明書を入手。
・キー (your.ssl.com.key)
・証明書 (your.ssl.com.cer)
・中間証明書 (ca.crt)


your.ssl.com.cerファイルをメモ帳で開き
ca.crt 中間証明書を追加して保存。


2. openssl コマンドでp12形式に変換
openssl pkcs12 -export -in your.ssl.com.cer -inkey your.ssl.com.key -out your.ssl.com.p12


3.JDKのkeytoolコマンドでキーストアファイルを作成

"c:\Program Files\java\jdk1.7.0_03\bin\keytool" -importkeystore -srckeystore your.ssl.com.p12 -srcstoretype PKCS12 -destkeystore your.ssl.com.keystore -deststoretype JKS
出力先キーストアのパスワードを入力してください:yourpass
新規パスワードを再入力してください:yourpass
ソース・キーストアのパスワードを入力してください:yourpass
別名1のエントリのインポートに成功しました。
インポート・コマンドが完了しました: 1件のエントリのインポートが成功しました。


4.keytoolコマンドで証明書表示

"c:\Program Files\java\jdk1.7.0_03\bin\keytool" -list -v -keystore your.ssl.com.keystore
キーストアのパスワードを入力してください:

キーストアのタイプ: JKS
キーストア・プロバイダ: SUN

キーストアには1エントリが含まれます


5. tomcat への設定

server.xml ファイルに
keystoreFile にキーストアファイルパスを設定。


<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxHttpHeaderSize="16384" URIEncoding="UTF-8" compressableMimeType="text/html,text/xml,text/plain,text/javascript,application/javascript,text/css" compression="on" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/ssl/your.ssl.com.keystore"
keyAlias="1" keystorePass="yourpass" useBodyEncodingForURI="true"
clientAuth="false" sslProtocol="TLS" />