##背景
LANからインターネットに出る際にプロキシ経由となっている環境で、外部に立てたTomcat上のWebアプリにHTTPS通信ができるようにしたい。
諸事情(プロキシによるブロック)あって、外部のサーバーに直接接続できなかったので、まずはローカル環境で試した。
##結果
事前確認
まずはHTTPでちゃんとアプリが起動しているか確認。
サービスで動かしているので、サービスを起動して、ブラウザでURLにアクセス。接続OK。
TomcatへのSSL対応処理
- keystoreファイルの作成
コマンドでTomcatが使えるkeystoreを作成する。
"%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA
対話形式であれこれ聞かれるので、適宜入力。パスワードはあとで使うので忘れないように。
これで.keystoreファイルがローカルユーザーのフォルダ配下にできる。
- server.xmlのHTTPS通信設定
先ほどのコマンドで作成された.keystoreのパスと、設定した鍵パスワードをHTTPSのConnector定義の箇所に追記する。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="[keystore_dir]\.keystore" keystorePass="[key_password]" />
HTTPSでの接続確認
ブラウザにて、https://[tomcat_server_URL]:8443/ にアクセスして、Tomcatの管理画面が開けばOK。
これでTomcatに構成してるアプリがHTTPSで接続できる。
参考
- SSL/TLS Configuration HOW-TO
- Tomcat で SSL の自己証明書を使用する方法