メインコンテンツまでスキップ

TomcatサーバーへのSSL証明書のインストール(JKS形式)

TomcatサーバーにSSL証明書をインストールすることで、TomcatサーバーがHTTPSによる安全なアクセスに対応するようになります。本記事では、TomcatサーバーにSSL証明書をインストールする方法について説明します。

説明

本ドキュメントではTomcatのバージョンとしてtomcat9.0.13を例に説明します。 インストール前に443ポートが使用されていないことを確認してください。443ポートが既に使用されている場合は、証明書のインストール時に他のポートをバインドしてください。

証明書の取得

  1. 弊社が証明書を発行した後、証明書ファイル(.zip)の圧縮形式でお渡しします。圧縮パッケージ内には4つのフォルダがあり、それぞれTomcat、Nginx、IIS、Apacheの4種類の証明書形式に対応しています。本ドキュメントではJKS形式を使用してインストールを行うため、Tomcatフォルダ内の証明書を使用します。

  2. Tomcatフォルダ内には3つのファイルが含まれます。

  • domain_com.jks 証明書ファイル
  • domain_com.key 秘密鍵ファイル
  • password.txt 証明書パスワードファイル

SSL証明書のインストール

  1. 取得した domain_com.jks 証明書ファイルをローカルディレクトリからTomcatサーバーの /usr/tomcat9.0.13/conf ディレクトリにコピーします。
  • Tomcatのバージョンによってパス名に多少の違いがある場合があるため、ご利用のサービスに対応するパスで操作を行ってください。
  • 一部のユーザーは、ご利用のJDKバージョンが弊社がJKSファイルを変換した環境のJDKバージョンと異なる場合、現在の使用環境でJKSファイルを手動で変換する必要がある場合があります。

以下のコマンドを参考にJKSファイルを変換してください。対応するパラメータを置き換えてください:

keytool -importkeystore -srckeystore domain.pfx -srcstoretype pkcs12 -srcstorepass pfxpassword -destkeystore domain.jks -deststoretype jks -deststorepass pfxpassword

domain.pfx(IISフォルダ内のpfxファイル)、pfxpassword(pfxファイルのパスワード)、domain.jks(変換後のjksファイル名)、pfxpassword(PFXファイルのパスワード)を置き換えてください。

  1. /usr/tomcat9.0.13/conf ディレクトリ配下にある server.xml ファイルを編集します。 server.xml ファイルにConnector属性を追加します。内容は以下の通りです:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- 証明書のパス -->
keystorePass="証明書のパスワード" <! -- password.txtパスワードファイルの内容に置き換えてください -->
clientAuth="false"/>
  1. 設定ファイルを保存し、binディレクトリで以下のコマンドを実行して、設定が正しいかどうかを確認します。
./configtest.sh
  1. Tomcatを再起動し、binディレクトリで以下のコマンドを実行します。
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器

SSL証明書のテスト

ブラウザのアドレスバーにSSL証明書をバインドしたドメインを入力し、SSL証明書が正常にインストールされたかテストしてください。正常にインストールされている場合、ブラウザのアドレスバーに錠前の安全アイコンが表示され、クリックすると証明書情報を確認できます。

SSL証明書の表示例

HTTPからHTTPSへの自動リダイレクトのセキュリティ設定(任意)

HTTPリクエストを自動的にHTTPSにリダイレクトしたい場合は、以下の手順で設定してください。

  1. /usr/tomcat9.0.13/conf ディレクトリ配下にある web.xml ファイルを編集し、</welcome-file-list> タグを探します。
  2. 終了タグ </welcome-file-list> の後で改行し、以下の内容を追加してください。
<login-config>  
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
  1. /usr/tomcat9.0.13/conf ディレクトリ内の server.xml ファイルを編集し、redirectPort パラメータを SSL の connector ポート、つまり443ポートに変更します。以下に例を示します:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
  1. 設定ファイルを保存し、bin ディレクトリで以下のコマンドを実行して、設定が正しいかどうかを確認します。
./configtest.sh
  1. 設定に問題がなければ、Tomcatサーバーを再起動することでドメイン名でアクセスできるようになり、HTTPからHTTPSへの自動リダイレクトが実現されます。
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器