ITエンジニアの成長ブログ

ITエンジニアとして行う勉強の発信&日々の生活で体験した楽しいことをゆるく発信

WindowsのTomcatでSSLを有効化する

やったことないからやってみようか、くらいの気持ちで、今回はWindowsにインストールしたTomcatSSLを有効化してみたいと思います。

Apache Httpサーバーは無しで、あくまでTomcat単体で実現してみたいと思います。
また、ローカルでの簡単な検証ですのでSSLオレオレ証明書を使いたいと思います。

検証するバージョンや環境

Tomcatのバージョンは、「8.5.58」です。
JDKのバージョンは、「jdk1.8.0_261」です。
Windows OSは、Windows 11 Proです。

キーペアを作成する

JDKに付属している「keytool」というツールでキーペアと証明書を作成します。今回はコマンドの詳細は割愛します。

keytool -genkeypair -alias tomcat  -keyalg RSA -keystore "C:\Program Files\Apache Software Foundation\Tomcat 8.5\conf\localhost-rsa.jks"


実際に私の環境で実行した結果が以下になります。パスワードを入力することになりますが、これは任意で入力して覚えておいてください。あとで設定ファイルに記載します。

何個か入力することになるかと思いますが、ここではとりあえず適当な値を入力しておきます。

keytoolコマンドを実行

「-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を再起動して、設定を反映させます。

httpsTomcatにアクセスする

それでは準備が完了したので、httpsTomcatにアクセスします。今回、httpsのポートは「8443」に設定したのでURLのポートはこれを指定します。

今回は自己証明書(オレオレ証明書)のため、アクセスすると以下のようなエラーが表示されると思います。

自己証明書によるエラー

今回はあくまで試験用なので、「詳細設定」を選択して「localhostにアクセスする」を選択しましょう。

自己証明書によるエラーを無視

保護されていない通信」とURL欄に表示されていますが、https通信が実現できました。

httpsTomcatにアクセスする

おわりに

いかがでしょうか。私自身やってみましたが、思いのほか簡単でした。今回はとにかく簡単にSSLを有効化してみたかったので色々と細かい考慮は考えていませんが、ローカルでの検証であれば十分かなと思います。

今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。