組み込み Apache Tomcat での HTTPS の有効化

重要

Linux では、1024 未満のポート番号で接続をリッスンできるのは、 root ユーザーによって起動されたプロセスのみです。

この制限を克服するために、 iptables を使用して、ポート 443 (デフォルトの https ポート) からの着信トラフィックを 9443 に、ポート 80 (デフォルトの http ポート) からの着信トラフィックを 9090 に、それぞれリダイレクトできます。 root アカウントで Denodo Platform サーバーを起動する方法もあります。

組み込み Apache Tomcat のデフォルトのポートを変更する場合、このことを考慮してください。

注釈

Consider checking the Denodo SSL/TLS Configurator Script before following the steps detailed in this section. The script can perform these steps for you.

Denodo Platform には、その Web アプリケーションと Web サービスをホストするために Apache Tomcat Web コンテナーが組み込まれています。Denodo Platform に組み込まれている Apache Tomcat で動作する Web アプリケーションとクライアントの間の通信は、HTTPS によって保護できます。この Web コンテナーで動作するアプリケーションを以下に示します。

  • ITPilot Administration Tool

  • Scheduler Administration Tool

  • Virtual DataPort を使用して公開される Web サービス

  • Data Catalog

  • Diagnostic & Monitoring Tool

HTTPS を有効化するには、以下の手順を実行します。

  1. このインストール環境のすべての Denodo サーバーを停止します。目的は、Denodo の Web コンテナーを停止させることです。すべてを停止させることが重要なので、Denodo の Web コンテナーも停止させます。たとえば、Data Catalog を起動したままにした場合、Web コンテナーはシャットダウンされないので、Denodo の他のコンポーネントを再起動しても、 tomcat.properties ファイルに対する変更は有効になりません。

  2. <DENODO_HOME>/resources/apache-tomcat/conf/tomcat.properties ファイルを編集します。

    以下のプロパティをコメント解除して、値を設定します。

com.denodo.tomcat.http.port

http 接続をリッスンするポート (https 接続ではありません)。このホストで使用可能なポートであることを確認してください。

http を無効化して https のみを許可するには、このプロパティをコメント化します。

http と https を許可するには、このプロパティのコメントを外したままにします。

URL にポート番号を指定せずに、https ではなく http でアクセスできるようにしたい場合は、9090 の代わりに 80 を設定します。これにより、ユーザーは、http://denodo-server.acme.com/denodo-restfulws のように URL を指定して Web コンテナーインターフェイスにアクセスできるようになります。http://denodo-server.acme.com:9090/denodo-restfulws のように指定する必要はありません。

この表の後の注を参照してください。

com.denodo.tomcat.https.port

https 接続をリッスンするポート。このホストで空いているポートであることを確認してください。

ユーザーが URL にポートを指定しなくても HTTPs インターフェイスにアクセスできるようにするには、9443 ではなく、443 に設定します。これにより、ユーザーは、https://denodo-server.acme.com/denodo-restfulws のように URL を指定して HTTPs インターフェイスにアクセスできるようになります。https://denodo-server.acme.com:9443/denodo-restfulws のように指定する必要はありません。

この表の後の注を参照してください。

com.denodo.security.ssl.enabled

true に設定します。

com.denodo.security.ssl.keyStore

Denodo Platform サーバーの秘密キーが含まれる キーストア ファイルのパス。

例 : com.denodo.security.ssl.keyStore= C:/denodo/denodo_server_key_store.jks

Denodo サーバーが Windows 上で動作している場合も、パス区切り文字にはスラッシュ (/) を使用する必要があります。

com.denodo.security.ssl.keyStorePassword

Denodo Platform サーバーの秘密キーが含まれる キーストア のパスワード (このファイルは常にパスワードで保護されています)。

このプロパティには、プレーンテキストのパスワードまたは暗号化されたパスワードを保存できます。パスワードは暗号化することをお勧めします。パスワードを暗号化するには、 {<DENODO_HOME>}/bin/encrypt_password を実行してキーストアのパスワードを入力し、このツールの出力をこのプロパティにコピーします。

com.denodo.security.ssl. keyStorePassword.encrypted

keyStorePassword プロパティのパスワードを暗号化した場合、 true に設定します。それ以外の場合、 false に設定します。

com.denodo.security.ssl.trustStore

com.denodo.security.ssl. trustStorePassword

com.denodo.security.ssl. trustStorePassword.encrypted

この 3 つのプロパティは、コメント化されたままにします。

重要

com.denodo.security.ssl.keyStorePassword または com.denodo.security.ssl.trustStorePassword に暗号化された値を設定する場合、外部の SSL/TLS 構成ファイルを使用できるようにする必要があります。詳細については、手順 5 を参照してください。

  1. <DENODO_HOME>/resources/apache-tomcat/conf/server.xml ファイルを編集します。

    1. SSL コネクターのコメントを外します。つまり、 SSLEnabled="true" が含まれる「Connector」エレメントを検索して、それを囲んでいる <----> の文字列を削除します。

    2. HTTP 経由のアクセスを無効化して、HTTPs コネクションのみを許可するには、port="${com.denodo.tomcat.http.port}が含まれる「Connector」エレメントを <----> で囲んでコメント化します。以下に例を示します。

<!--
  <Connector port="${com.denodo.tomcat.http.port}"
             protocol="HTTP/1.1"
             maxThreads="150"
             minSpareThreads="25"
             redirectPort="${com.denodo.tomcat.https.port}"
             connectionTimeout="20000"
             URIEncoding="UTF-8"
             compression="on"
             compressionMinSize="1024"
             noCompressionUserAgents="gozilla, traviata"
             compressableMimeType="text/html,text/xml,application/json,application/xml,text/css,text/javascript,application/javascript" />
-->

Apache Tomcat のドキュメントを確認して、暗号の制限、クライアント認証の有効化など、Web コンテナーのデフォルトの SSL/TLS 設定を変更する方法を調べます。

  1. <DENODO_HOME>/resources/apache-tomcat/conf/jmxssl.properties ファイルが存在するかどうかを確認します。存在しない場合、作成して空のままにします。

  2. Tomcat 上で TLS/SSL を有効にすると、Denodo サーバーを起動したユーザーアカウントで、Denodo サーバーが動作するホストに接続できるユーザーは、実行中のプロセスの一覧で、キーストアのパスワードを確認できるようになります。これは、デフォルトでは、このパスワードが Web コンテナーを起動するスクリプトのパラメーターとして渡されるからです。

    これ (つまり Tomcat のコマンドラインにパスワードが追加されること) を回避するには、以下の手順を実行します。

    重要

    手順 2 で com.denodo.security.ssl.keyStorePassword.encrypted プロパティを true に設定している場合、以下の手順は必須です。実行しないと、Tomcat は起動しません。このプロパティが false の場合、この手順は必須ではありません。

    1. <DENODO_HOME>/resources/apache-tomcat/conf/tomcat.properties ファイルを編集して、 com.denodo.security.management.jmxremote.ssl.config.file プロパティをコメント解除します。プロパティのコメント解除のみを行い、デフォルト値はそのまま (すなわち <DENODO_HOME>/resources/apache-tomcat/conf/jmxssl.properties) にします。

    2. <DENODO_HOME>/resources/apache-tomcat/conf/jmxssl.properties ファイルの権限を変更して、Denodo サーバーを起動するユーザーアカウントと同じユーザーアカウントのみが読み書きできるようにします。

      これらの権限を変更しないと、Web コンテナーは起動しません。

      Denodo コンポーネントを Windows サービスとして起動する場合、jmxssl.properties ファイルの所有者であるユーザーアカウントで動作するようにそれらのサービスを構成する必要があります。その手順については、「 Windows サービスの構成 」を参照してください。

      この権限を変更するには、以下のコマンドを実行します。

      • Linux の場合、Denodo サーバーを起動するユーザーアカウントで以下のコマンドを実行します。

      chmod 600 <DENODO_HOME>/resources/apache-tomcat/conf/jmxssl.properties
      
      • Windows の場合、 Windows メニュー の [コマンド プロンプト] アイコンを右クリックして、[管理者として実行] をクリックします。続いて、以下のコマンドを実行します。

      cd <DENODO_HOME>\resources\apache-tomcat\conf\
      icacls jmxssl.properties /setowner <denodo user>
      icacls jmxssl.properties /reset
      icacls jmxssl.properties /inheritance:r /grant:r <denodo user>:(GR,GW)
      

      以下に例を示します。

      icacls jmxssl.properties /setowner CONTOSO\jsmith
      icacls jmxssl.properties /reset
      icacls jmxssl.properties /inheritance:r /grant:r CONTOSO\jsmith:(GR,GW)
      
  3. 使用する Denodo サーバーを起動します。

  4. https が正常に有効化されたことを確認するために、URL https://denodo-server.acme.com:9443/denodo-restfulws/admin (9443 は com.denodo.tomcat.https.port プロパティのデフォルト値) を開きます。

Virtual DataPort Server ではなく Web コンテナーでの HTTPS の有効化

Virtual DataPort Server で TLS/SSL を有効化せずに Web コンテナーで https を有効化することができます。Virtual DataPort Server で SSL/TLS を有効化しない場合、 tomcat.properties ファイルの com.denodo.security.ssl.enabled プロパティをコメント化します。

トラストストア (cacerts ファイル) の追加情報

tomcat.properties ファイルでは、 com.denodo.security.ssl.trustStorecom.denodo.security.ssl.trustStorePassword 、および com.denodo.security.ssl.trustStorePassword.encrypted の各プロパティをコメント化されたままにすることをお勧めします。これにより、Web コンテナーは、インストールのデフォルトの トラストストア (すなわち <DENODO_HOME>/jre/lib/security/cacerts) を使用します。

Denodo Web コンテナーがデフォルト以外の トラストストア を使用するように構成することは可能です。ただし、新しい トラストストア ファイルを管理する必要があり、Denodo サーバーを管理する手間が増えるので、お勧め しません 。デフォルト以外のトラストストアを使用する場合は、 tomcat.properties ファイルで以下のプロパティのコメントを解除します。

  • com.denodo.security.ssl.trustStore = トラストストアのパス。

    例 : com.denodo.security.ssl.trustStore=c:/denodo/custom_cacerts

    Denodo サーバーが Windows 上で動作している場合も、パス区切り文字にはスラッシュ (/) を使用する必要があります。

  • com.denodo.security.ssl.trustStorePassword = トラストストア のパスワード。 トラストストア のデフォルトのパスワードは changeit です。パスワードの値は、プレーンテキストで、または暗号化して、保存できます。有効な暗号化された値を取得するには、 {<DENODO_HOME>}/bin/encrypt_password スクリプトを使用します。

  • com.denodo.security.ssl.trustStorePassword.encrypted = トラストストア のパスワードが暗号化されている場合は true に設定します。

    このプロパティを true に設定した場合、手順 5 (前述) を実行する必要があります。実行しない場合、Tomcat は起動しません。