TomcatのWebアプリケーションマネージャ(manager)でSSL対応(https)をする方法
TomcatでSSL対応(https)をするには、まずSSL証明書を用意し、その証明書をTomcatの設定に組み込む必要があります。
以下は、TomcatのWebアプリケーションマネージャー(manager)でSSL対応を行う手順です。
1. SSL証明書の取得
SSL通信を行うには、まずSSL証明書が必要です。
証明書は、認証局(CA)から取得するか、自分で作成することもできます。
一般的には、認証局からの証明書を取得することが推奨されます。
証明書の取得後、証明書ファイル(通常は .crt や .pem)と秘密鍵ファイル(通常は .key)が手に入ります。
2. 証明書と秘密鍵をキーストアに変換
Tomcatは、Javaのキーストア形式(通常は .jks)でSSL証明書を扱います。
そのため、証明書と秘密鍵をキーストアに変換する必要があります。
これには keytool コマンドを使用します。
以下は、証明書をキーストアにインポートするコマンドの例です。
keytool -import -alias tomcat -keystore /path/to/keystore.jks -file /path/to/certificate.crt
秘密鍵が別ファイルとして提供されている場合、最初に秘密鍵と証明書をPKCS12形式に変換し、その後キーストアにインポートする必要があります。
これには openssl コマンドと keytool コマンドを使用します。
openssl pkcs12 -export -in /path/to/certificate.crt -inkey /path/to/private.key -out /path/to/keystore.p12 -name tomcat keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore /path/to/keystore.jks -srckeystore /path/to/keystore.p12 -srcstoretype PKCS12 -alias tomcat
3. Tomcatの設定ファイルを編集
Tomcatの設定ファイルである server.xml を編集して、SSL接続を有効にします。
server.xml は通常 TOMCAT_HOME/conf/ ディレクトリにあります。
次のように設定します。
<Connector port="8443" protocol="HTTP/1.1" maxThreads="150" scheme="https" secure="true" SSLEnabled="true" keystoreFile="/path/to/keystore.jks" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/>
- port:SSL通信に使用するポート番号です。
通常は 443 が推奨されますが、テスト環境などでは 8443 を使用することもあります。
- keystoreFile:先ほど作成したキーストアファイルへのパスです。
- keystorePass:キーストアのパスワードです。
- sslProtocol:使用するSSL/TLSプロトコルのバージョンです。
最新のプロトコル(例えば TLSv1.3)を指定することが推奨されます。
4. Tomcatの再起動
設定を変更した後は、Tomcatを再起動して変更を適用します。
Tomcatの再起動には、以下のコマンドを使用します。
$TOMCAT_HOME/bin/shutdown.sh $TOMCAT_HOME/bin/startup.sh
5. 動作確認
Tomcatが再起動したら、ブラウザで https://your-server-address:8443 にアクセスして、SSL接続が正常に動作しているかを確認します。
証明書のエラーが表示される場合は、証明書の設定やキーストアの内容を再確認してください。
この手順に従ってSSL対応を行うことで、TomcatのWebアプリケーションマネージャーでもHTTPSによるセキュアな通信が可能になります。