ページ更新日:2026/05/07
JavaベースのWebサーバーであるApache Tomcatは、SSL証明書の設定方法がApache・Nginxと異なります。
JavaのKeystore(キーストア)形式にSSL証明書を取り込んで使用するのが基本的な手順です。
このページではOpenSSLとkeytoolコマンドを使った手順を解説します。
| 方式 | 概要 | Tomcatのコネクター設定 |
| JSSE(Java SSE)コネクター | JavaのKeystoreを使用。keytool で管理 |
SSLImplementation デフォルト |
| APR/OpenSSLコネクター | Apache Portable Runtimeを使用。Apache同様に .crt/.key を直接指定できる | APRライブラリが必要 |
本ページでは JSSEコネクターを使ったPKCS#12 Keystore方式(Tomcat 8.5以降で推奨)を説明します。
TomcatはPKCS#12形式のKeystoreを直接使用できます(Tomcat 8.5以降)。
認証局から受け取ったPEM形式のファイルからPFXを作成します。
# 証明書・中間CA証明書・秘密鍵を結合してPFXを作成 openssl pkcs12 -export \ -in server.crt \ -inkey server.key \ -certfile intermediate.crt \ -out keystore.p12 \ -name "tomcat" \ -passout pass:changeit
-name "tomcat":エイリアス名(後で keystoreAlias に指定する値)-passout pass:changeit:Keystoreのパスワード("changeit" は例。実際には強固なパスワードに変更)-certfile 行を省略
$CATALINA_HOME/conf/server.xml を編集して、HTTPSリスナーを追加します。
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/path/to/keystore.p12"
certificateKeystoreType="PKCS12"
certificateKeystorePassword="changeit"
certificateKeyAlias="tomcat" />
</SSLHostConfig>
</Connector>
port:HTTPSのポート番号。通常は443またはTomcat独自の8443certificateKeystoreFile:KeystoreファイルのAbsoluteパスcertificateKeyAlias:PFX作成時に指定したエイリアス名# Tomcatを再起動 $CATALINA_HOME/bin/shutdown.sh $CATALINA_HOME/bin/startup.sh # ログで起動エラーがないか確認 tail -f $CATALINA_HOME/logs/catalina.out
起動後、ブラウザで https://ホスト名:8443/ にアクセスし、鍵マークが表示されることを確認してください。
<SSLHostConfig
protocols="TLSv1.2+TLSv1.3">
<Certificate ... />
</SSLHostConfig>
※ TLS 1.0・1.1 は既に廃止扱いです。PCI DSS準拠やセキュリティ強化のため TLS 1.2 以上に制限することをおすすめします。
SSLCertificateFile 方式(旧来のJSSEコネクター設定)は非推奨です。上記の <SSLHostConfig> 形式を使用してください。
📌 関連ページ:
opensslでpfxファイル作成
SSL証明書のファイル形式の違い
ApacheにSSL証明書をインストール