備忘録:Windows環境 Java Tomcat SSL対応(有償SSLライセンス編)
2018/06/26
2020/05/01
タグ: Java, SSL, Tomcat, Windows, 有償ライセンス
WindowsのJava環境でサーブレット・JSPを利用する際にTomcatを使いますが、テスト用のSSLは簡単に作れるしオレオレ証明書もやり方が紹介されいるサイトは沢山あるが、残念ながら今のブラウザ事情にはあっていない。つまりhttpsにしたときにバッテンがついたり、「安全ではないサイト」という形で表示されてしまう。
オレオレ証明書もやり方しだい(自己認証局証明書のブラウザ埋め込み)ではきちんと緑色にURLの先頭アイコンに表示されます。しかし、今はテスト用のSSLなら1000円で買える時代。今回は意外と調べても少ない正規品のSSL証明書を購入してWindowsのTomcatに導入する場合の方法を案内します。実はLinuxでは簡単なのですがWindowsは少し手間が増えます。それは鍵の形式が一般的なものと異なるからです。
TomcatのSSL化には必須のserver.xmlの編集
1 2 3 4 5 6 |
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${user.home}/server.keystore" keystorePass="password" clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/> |
鍵の変換
Tomcatでは鍵の配置場所をキーストアと呼び、そこに配置するサーバ証明書類の群はキーストアファイルと呼んでいます。
リナックスではSSLの設置は簡単で、そのままの発行局から承認された証明書ファイルを設置できます。一方Windowsの場合はPKCS12の形式でファイルを作る必要があります。変換された証明書は更にJava KeyStore (JKS) に変換します。これは外部の「公開鍵証明書」や「秘密鍵と公開鍵証明書の組」を取り込むことができる形式です。
- キーストア:server.keystore
- ルート証明書:ca.crt
- 秘密鍵:server.key
- サーバ証明書:server.crt
下記はコマンドプロンプトで実行してください。
1 2 |
# openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -certfile ca.crt # keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -destkeystore server.keystore -deststoretype JKS |
これを所定の位置にserver.keystoreとして配置すれば問題ありません。server.xmlの「keystoreFile」を編集しTomcatの再起動で設定は反映されます。