組み込み Apache Tomcat での HTTPS の有効化¶
重要
Linux では、1024 未満のポート番号で接続をリッスンできるのは、 root ユーザーによって起動されたプロセスのみです。
この制限を克服するために、 iptables を使用して、ポート 443 (デフォルトの HTTPS ポート) からの着信トラフィックを 9443 に、ポート 80 (デフォルトの HTTP ポート) からの着信トラフィックを 9090 に、それぞれリダイレクトできます。 root アカウントで Denodo Platform サーバーを起動する方法もあります。
組み込み Apache Tomcat のデフォルトのポートを変更する場合、このことを考慮してください。
注釈
このセクションで詳細に説明している手順を実行する前に、「 Denodo SSL/TLS 構成スクリプト 」を確認することを検討してください。それらの手順はスクリプトでも実行できます。
Denodo Platform には、その Web アプリケーションと Web サービスをホストするために Apache Tomcat Web コンテナーが組み込まれています。Denodo Platform に組み込まれている Apache Tomcat で動作する Web アプリケーションとクライアントの間の通信は、HTTPS によって保護できます。この Web コンテナーで動作するアプリケーションを以下に示します。
Scheduler Administration Tool
Virtual DataPort を使用して公開される Web サービス
Data Catalog
Diagnostic & Monitoring Tool
HTTPS を有効化するには、以下の手順を実行します。
このインストール環境のすべての Denodo サーバーを停止します。目的は、Denodo の Web コンテナーを停止させることです。すべてを停止させることが重要なので、Denodo の Web コンテナーも停止させます。たとえば、Data Catalog を起動したままにした場合、Web コンテナーはシャットダウンされないので、Denodo の他のコンポーネントを再起動しても、
tomcat.properties
ファイルに対する変更は有効になりません。<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 |
|
com.denodo.security.ssl.keyStore |
Denodo Platform サーバーの秘密キーが含まれる キーストア ファイルのパス。 例: Denodo サーバーが Windows 上で動作している場合も、パス区切り文字にはスラッシュ (/) を使用する必要があります。 |
com.denodo.security.ssl. keyStorePassword.secret |
Denodo Platform サーバーの秘密キーが含まれる キーストア のパスワード (このファイルは常にパスワードで保護されています)。 このプロパティには、プレーンテキストのパスワードまたは暗号化されたパスワードを保存できます。パスワードは暗号化することをお勧めします。パスワードを暗号化するには、 |
com.denodo.security.ssl.trustStore com.denodo.security.ssl. trustStorePassword.secret |
これらのプロパティは、コメント化されたままにします。 |
com.denodo.rmi.connection.tlsProtocol |
Tomcat で実行されるアプリケーションと VDP サーバーの通信に特定のバージョンの TLS プロトコルを使用する必要がある場合、このプロパティを追加し、 |
重要
com.denodo.security.ssl.keyStorePassword.secret
または com.denodo.security.ssl.trustStorePassword.secret
に暗号化された値を設定する場合、外部の SSL/TLS 構成ファイルを使用できるようにする必要があります。詳細については、手順 5 を参照してください。
<DENODO_HOME>/resources/apache-tomcat/conf/server.xml
ファイルを編集します。SSL コネクターのコメントを外します。つまり、
SSLEnabled="true"
が含まれる「Connector」エレメントを検索して、それを囲んでいる<--
と-->
の文字列を削除します。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" />
-->
暗号の制限、クライアント認証の有効化など、Web コンテナーのデフォルトの SSL/TLS 設定を変更する方法を理解するには、Apache Tomcat のドキュメントを確認してください。
<DENODO_HOME>/resources/apache-tomcat/conf/jmxssl.properties
ファイルが存在するかどうかを確認します。存在しない場合、作成して空のままにします。Tomcat 上で TLS/SSL を有効にすると、Denodo サーバーを起動したユーザーアカウントで、Denodo サーバーが動作するホストに接続できるユーザーは、実行中のプロセスの一覧で、キーストアのパスワードを確認できるようになります。これは、デフォルトでは、このパスワードが Web コンテナーを起動するスクリプトのパラメータとして渡されるからです。
これ (つまり Tomcat のコマンドラインにパスワードが追加されること) を回避するには、以下の手順を実行します。
<DENODO_HOME>/resources/apache-tomcat/conf/tomcat.properties
ファイルを編集して、com.denodo.security.management.jmxremote.ssl.config.file
プロパティをコメント解除します。プロパティのコメント解除のみを行い、デフォルト値はそのまま (すなわち<DENODO_HOME>/resources/apache-tomcat/conf/jmxssl.properties
) にします。<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)
使用する Denodo サーバーを起動します。
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.trustStore
および com.denodo.security.ssl.trustStorePassword.secret
の各プロパティをコメント化されたままにすることをお勧めします。これにより、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.secret
= トラストストア のパスワード。 トラストストア のデフォルトのパスワードはchangeit
です。パスワードの値は、プレーンテキストで、または暗号化して、保存できます。有効な暗号化された値を取得するには、{<DENODO_HOME>}/bin/encrypt_password
スクリプトを使用し、先頭にencrypted:
を付加します。