本ドキュメントでは、CentOS で実行している Tomcat 8.5 または Tomcat 9.0 に SSL 証明書をデプロイする方法について説明します。
テスト環境
OS:CentOS 7.6, 64-bit
Web サーバー:Tomcat 8.5 または Tomcat 9.0
注 最初から Tomcat サーバーに JDK 環境変数をインストールする必要があります。 推奨される JDK 互換構成は Tomcat の公式 Web サイトで確認できます。
前提条件
- Alibaba Cloud SSL 証明書コンソールから Tomcat サーバー証明書をダウンロード済み。 Tomcat サーバー証明書には、PFX 形式の証明書ファイルと TXT 形式のパスワードファイルが含まれています。
- SSL 証明書にバインドされているドメイン名の DNS レコードを追加済み。ドメイン名に Tomcat サーバーの IP アドレスを割り当て済み。
ドメイン名解決を構成してから、ping www.yourdomain.com コマンドを実行します。 Tomcat サーバーの IP アドレスが返されると、解決は成功です。
手順
- Tomcat サーバー証明書を解凍します。
注 証明書をダウンロードするたびに新しいパスワードファイルが生成されます。 パスワードはダウンロードした証明書に対してのみ有効です。 証明書を更新したい場合は、パスワードも同時に更新する必要があります。
- Tomcat のインストールディレクトリに cert ディレクトリを作成し、ダウンロードした証明書ファイルとパスワードファイルを cert ディレクトリにコピーします。
- Tomcat/conf/server.xml を開き、server.xml ファイルで以下のパラメータを見つけ出し、変更します。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> #上記のパラメータを見つけ出し、<! - - 及び - -> 注釈記号を削除して、次のようにパラメータを変更します: <Connector port="80" protocol="HTTP/1.1" #コネクタポートを 80 に設定します。 connectionTimeout="20000" redirectPort="443" /> #redirectPort を SSL デフォルトポートの 443 に設定して、HTTP リクエストを HTTPS リクエストにリダイレクトします。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="cert/keystore.pfx" certificateKeystorePassword="XXXXXXX" certificateKeystoreType="PKCS12" /> #上記のパラメータを見つけ出し、<! - - 及び - -> 注釈記号を削除して、次のようにパラメータを変更します: <Connector port="443" #デフォルトの Tomcat HTTPS ポートコネクタポートを 8443 から 443 に変更します。 ポート 8443 はドメイン名を介して直接アクセスすることはできません。 そのため、ドメイン名にポート番号を追加する必要があります。 ポート 443 が HTTPS のデフォルトポートです。 ドメイン名にポート番号を追加しなくても、ドメイン名を介して直接アクセスできます。 protocol="org.apache.coyote.http11.Http11NioProtocol" #ファイル server.xml のコネクタポートには、NIO と APR の 2 つのモードがあります。 このデプロイメントでは、NIO モードが使用されます。 The protocol="org.apache.coyote.http11.Http11NioProtocol" setting specifies the NIO mode. maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="/usr/local/tomcat/cert/証明書ドメイン名.pfx" # certificateKeystoreFile パラメータは、証明書ファイルのパスを指定します。 証明書パス+ファイル名で、「証明書ドメイン名.pfx」を置き換えます(例:certificateKeystoreFile="/usr/local/tomcat/cert/abc.com.pfx")。 certificateKeystorePassword="password" # certificateKeystorePassword パラメータは、SSL 証明書のパスワードを指定します。 それを置き換えるには、pfx-password.txt にある証明書パスワードを使用します(例:certificateKeystorePassword="bMNML1Df")。 certificateKeystoreType="PKCS12" /> #証明書タイプが PFX の場合は、certificateKeystoreType を PKCS12 に設定します。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #上記のパラメータを見つけ出し、<! - - 及び - -> 注釈記号を削除して、次のようにパラメータを変更します: <Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> # HTTP リクエストを HTTPS リクエストにリダイレクトするには、redirectPort を 443 に設定します。
- 構成を server.xml ファイルに保存します。
- Tomcat サービスを再起動します。
- Tomcat サービスを無効にするには、Tomcat の bin ディレクトリで ./shutdown.sh を実行します。
- Tomcat サービスを有効にするには、Tomcat の bin ディレクトリで ./startup.sh を実行します。
デプロイ後の処理
Tomcat サービスを再起動した後、ブラウザのアドレスバーにドメイン名 https://www.YourDomainName.com を入力して、証明書のデプロイ結果を確認します。 ブラウザのアドレスバーに緑色のロックアイコンが表示されると、証明書のインストールが成功したことを示します。