TomcatサーバーへのSSL証明書インストール(PFX形式)
TomcatサーバーにSSL証明書をインストールすることで、TomcatサーバーがHTTPSによる安全なアクセスに対応するようになります。本書ではTomcatサーバーにSSL証明書をインストールする方法について説明します。
説明
本書ではTomcatのバージョンを tomcat9.0.13 として例示します。
インストール前に443番ポートが使用されていないことを確認してください。443番ポートが使用済みの場合は、証明書のインストール時に別のポートをバインドしてください。
証明書の取得
- お客様の証明書を発行した後、証明書ファイル(.zip)の圧縮形式で交付します。圧縮パッケージ内にはTomcat、Nginx、IIS、Apacheの4種類の証明書形式に対応する4つのフォルダがあります。本書ではPFX形式でインストールを行うため、IISフォルダ内の証明書を使用する必要があります。 (各フォルダの違いはファイル形式のみであり、他のフォルダのファイルを使用しても競合は発生しません) 2.IISフォルダ内には3つのファイルが含まれます。
domain_com.pfx証明書ファイルdomain_com.key秘密鍵ファイルpassword.txt証明書パスワードファイル
SSL証明書のインストール
- 取得した
domain_com.pfx証明書ファイルをローカルディレクトリからTomcatサーバーの/usr/tomcat9.0.13/confディレクトリにコピーします。 Tomcatのバージョンによってパス名に多少の違いがあるため、ご利用のサービスに対応するパスで操作を行ってください。 /usr/tomcat9.0.13/confディレクトリ配下にあるserver.xmlファイルを編集します。server.xmlファイルにConnector属性を追加し、内容は以下の通りです:
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- 証明書のパス -->
keystoreType="PKCS12"
keystorePass="証明書パスワード" <! -- password.txtパスワードファイルの内容に置き換えてください -->
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
- 設定ファイルを保存し、
binディレクトリで以下のコマンドを実行して、設定が正しいかどうかを確認します。
./configtest.sh
- Tomcatを再起動し、
binディレクトリで以下のコマンドを実行します:
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器
SSL証明書のテスト
ブラウザのアドレスバーにSSL証明書をバインドしたドメインを入力し、SSL証明書が正常にインストールされたかテストしてください。成功した場合、ブラウザのアドレスバーに錠前の安全アイコンが表示され、クリックすると証明書情報を確認できます。

HTTPからHTTPSへの自動リダイレクトのセキュリティ設定(任意)
HTTPリクエストを自動的にHTTPSにリダイレクトしたい場合は、以下の手順で設定してください:
/usr/tomcat9.0.13/confディレクトリ配下のweb.xmlファイルを編集し、</welcome-file-list>タグを探します。- 終了タグ
</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>
/usr/tomcat9.0.13/confディレクトリ配下のserver.xmlファイルを編集し、redirectPortパラメータをSSLのconnectorポート、つまり443ポートに変更します。以下の例をご参照ください:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
- 設定ファイルを保存し、
binディレクトリで以下のコマンドを実行して、設定が正しいかどうかを確認します。
./configtest.sh
- 設定に問題がなければ、Tomcatサーバーを再起動するとドメイン名でアクセスできるようになり、HTTPからHTTPSへの自動リダイレクトが実現されます。
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器