やったことないからやってみようか、くらいの気持ちで、今回はWindowsにインストールしたTomcatでSSLを有効化してみたいと思います。
Apache Httpサーバーは無しで、あくまでTomcat単体で実現してみたいと思います。
また、ローカルでの簡単な検証ですのでSSLはオレオレ証明書を使いたいと思います。
キーペアを作成する
JDKに付属している「keytool」というツールでキーペアと証明書を作成します。今回はコマンドの詳細は割愛します。
keytool -genkeypair -alias tomcat -keyalg RSA -keystore "C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\localhost-rsa.jks"
実際に私の環境で実行した結果が以下になります。パスワードを入力することになりますが、これは任意で入力して覚えておいてください。あとで設定ファイルに記載します。
何個か入力することになるかと思いますが、ここではとりあえず適当な値を入力しておきます。
「-keystore」オプションで指定したパスにキーストアファイルが作成されていることを確認します。このファイルにキーペアと証明書が含まれているようです。
サーバー設定ファイルの修正
それでは、次はTomcatのサーバー設定ファイル「server.xml」を修正しましょう。
以下のようなコネクタの定義をServiceタグの中に追加します。他のコネクタの定義と同じ個所に記載しておけば問題ないはずです。
keystoreFile属性は、キーストアファイルのパスを指定し、keystorePass属性は、キーストアファイル作成時のものを入力してください。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" keystoreFile="conf/localhost-rsa.jks" keystorePass="tomcat" />
これで準備完了です。Tomcatを再起動して、設定を反映させます。
httpsでTomcatにアクセスする
それでは準備が完了したので、httpsでTomcatにアクセスします。今回、httpsのポートは「8443」に設定したのでURLのポートはこれを指定します。
今回は自己証明書(オレオレ証明書)のため、アクセスすると以下のようなエラーが表示されると思います。
今回はあくまで試験用なので、「詳細設定」を選択して「localhostにアクセスする」を選択しましょう。
「保護されていない通信」とURL欄に表示されていますが、https通信が実現できました。
おわりに
いかがでしょうか。私自身やってみましたが、思いのほか簡単でした。今回はとにかく簡単にSSLを有効化してみたかったので色々と細かい考慮は考えていませんが、ローカルでの検証であれば十分かなと思います。
今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。