Alibaba Cloud Certificate Management Serviceを使用すると、Tomcatサーバーに証明書をダウンロードしてインストールできます。 Tomcatサーバーは、PFX証明書とJKS証明書の2種類の証明書をサポートしています。 Tomcatサーバーのバージョンに基づいて、PFX証明書またはJKS証明書をダウンロードできます。 このトピックでは、TomcatサーバーにJKS証明書をダウンロードしてインストールする方法について説明します。

背景情報

JKS形式ではない証明書がある場合は、OpenSSLツールを使用して証明書をJKS形式に変換できます。 証明書の形式を変換する方法の詳細については、「証明書の形式を変換するにはどうすればよいですか?」をご参照ください。

前提条件

  • Tomcatサーバーにログオンしています。 Tomcatサーバーは次の要件を満たしています。
    • ポート443が有効です。 Port 443 is the default port for HTTPS services.
    • The OpenSSL tool is installed. OpenSSLツールがインストールされていない場合は、OpenSSL公式Webサイトにアクセスして、OpenSSLツールをダウンロードしてインストールできます。
  • JKS証明書は、証明書管理サービスコンソールからダウンロードされます。 詳細については、「証明書をコンピューターにダウンロードする」をご参照ください。

手順

このトピックでは、Linuxオペレーティングシステムを実行するTomcat 7サーバーにJKS証明書をインストールする方法の例を示します。

  1. ダウンロードした証明書パッケージを解凍します。
    次のファイルが取得されます。
    • 証明書ファイル: domain_name jks
      この例では、証明書名はdomain_nameです。
    • パスワードファイル: jks-password.txt
    • 証明書を申請するときにCSR生成自動に設定しないと、ダウンロードした証明書パッケージにTXTパスワードファイルが含まれません。 この場合、Otherタイプのサーバー用のCRT証明書をダウンロードし、OpenSSLツールを使用して証明書ファイルをJKS形式に変換する必要があります。
    • 証明書をダウンロードするたびに、新しいパスワードファイルが生成されます。 The password file is valid only for the downloaded certificate. 証明書を更新する場合は、パスワードも更新する必要があります。
  2. Tomcatのインストールディレクトリにcertディレクトリを作成し、JKS証明書ファイルとパスワードファイルをcertディレクトリにコピーします。
  3. 次の手順を実行して、設定ファイルserver.xmlを変更します。
    1. Access Tomcat installation directory/conf/server.xml and open the server.xml file.
    2. server.xmlファイルの次のコンテンツから、番号記号 (#) が前に付いているコメントを削除します。
      <コネクタポート="8443"
      protocol="HTTP/1.1"
        port="8443" SSLEnabled="true"
        maxThreads="150" scheme="https" secure="true"
        clientAuth="false" sslProtocol="TLS" />
    3. Modify the server.xml file based on the following descriptions:
      <Connector port="443"# ビジネス要件に基づいてポートを変更します。 ポート443は、HTTPSサービスのデフォルトポートです。 別のポートを使用する場合は、https:// yourdomain:portを使用してWebサイトにアクセスする必要があります。 
          protocol="HTTP/1.1"
          SSLEnabled="true"
          scheme="https"
          secure="true"
          keystoreFile=" Tomcatインストールディレクトリ /cert/ domain_name .jks"# 証明書名の前に証明書の絶対パスを追加します。 domain_nameを証明書ファイルの名前に置き換えます。 
          keystorePass=" 証明書パスワード " # jks-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"/>
    4. server.xmlファイルを保存します。
  4. オプション:HTTPリクエストをHTTPSリクエストにリダイレクトするようにweb.xmlファイルを設定します。
    次のコンテンツを </welcome-file-list> ファイルに追加します。
    <login-config>  
        <!-- SSLの認証設定 -->  
        <auth-method>CLIENT-CERT</auth-method>  
        <realm-name> クライアントCertユーザー専用エリア </realm-name>
    </login-config>
    <security-constraint>  
        <!-- SSLの認証設定 -->  
        <web-resource-collection >  
            <web-resource-name>Project name</web-resource-name> # Replace Project name with the name of your project. 
            <url-pattern>/*</url-pattern>  
        </web-resource-collection>  
        <user-data-constraint>  
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
        </user-data-constraint>
    </security-constraint>
  5. Tomcatサーバーを再起動します。
    1. Run the following command to stop your Tomcat server:
      . /shutdown.sh
    2. 次のコマンドを実行して、Tomcatサーバーを起動します。
      . /startup.sh

次の手順

上記の操作を完了すると、証明書にバインドされているドメイン名にアクセスして、証明書がインストールされているかどうかを確認できます。
https:// domain name# domain nameを証明書にバインドされているドメイン名に置き換えます。 
  • アドレスバーにロックアイコンが表示された場合、証明書がインストールされます。
  • HTTPS経由でWebサイトにアクセスできない場合は、証明書がインストールされているサーバーでポート443が有効になっているかどうかを確認します。