SSL/TLS 証明書の取得とインストール¶
Denodo Platform サーバーとクライアントの間で SSL/TLS を有効化する前に、キーペア (公開キーおよび関連付けられている秘密キー) と証明書を使用して キーストア を作成する必要があります。それには、以下のいずれかの選択肢を実行します。
SSL 秘密キーを持って いない 場合、 自己署名秘密キーを使用してキーストアを作成 できます。
SSL 秘密キーを持って いない 場合、 証明機関 (CA) に要求を送信して、応答の証明書を使用してキーストアを作成 できます。
秘密キーを含む PFX ファイルを持っている場合、 その内容を使用してキーストアを作成 します。
すでにキーストアファイル (通常、このファイルの拡張子は「p12」または「jks」です) が存在する場合、ここは読み飛ばして、 次 のセクションに進みます。
1 番目から 3 番目のオプションでは、keytool というツールを使用します。このツールのパラメータの詳細については、 keytool のドキュメントの Windows 版 と Linux 版 を参照してください。
自己署名証明書によるキーストアの作成¶
このセクションでは、キーペア (公開キーおよび関連付けられている秘密キー) とその自己署名証明書 (X.509 v3 自己署名証明書) を生成する方法について説明します。
Denodo サーバーを実行するホストでコマンドラインを開いて、以下のコマンドを実行します。
手順 #1. キーペアを生成します。
以下のコマンドを実行します (Linux では \
を /
に置き換えます)。その際、サンプルの hostname.example.com
は、Denodo サーバーが動作する FQDN に置き換えます。
cd <DENODO_HOME>
.\jre\bin\keytool -genkeypair -alias denodo-server-self-signed -keyalg RSA -keysize 2048 -keystore denodo_server_key_store.p12 -storetype pkcs12 -validity 365 -dname "cn=hostname.example.com" -ext san=dns:hostname.example.com,dns:localhost,ip:127.0.0.1
JKS キーストアを使用するには、ファイル拡張子を .p12
から .jks
に変更し、 -storetype
パラメータを jks
に変更します。
注釈
Subject Alternative Names (SAN) は、JDBC コネクションまたは ODBC コネクションでは必要ありませんが、Denodo Platform の Web ツールにアクセスする際にブラウザーで必要になります。Web ツールを使用する場合、Denodo Platform にアクセスするために使用されるすべてのホスト名と IP アドレスが、上記の形式に従って SAN エントリに追加されていることを確認してください。SAN が不要な場合、 -ext 以降をすべて削除してもかまいません。
有効な SAN 属性の例:
SAN=IP:123.456.789.101,DNS:hostname.example.com,DNS:hostname SAN=DNS:hostname.example.com
新しいキーストアのパスワードを入力し、もう 1 回入力します。 このパスワードを書き留めます 。後続の設定中にこのパスワードが必要になります。パスワードがわからなくなった場合、回復することはできません。
手順 #2. 自己署名公開キーをファイルにエクスポートします。
以下のコマンドを実行します (Linux では \
を /
に置き換えます)。
.\jre\bin\keytool -exportcert -alias denodo-server-self-signed -keystore denodo_server_key_store.p12 -file denodo_server_public_key.cer
「手順 #1」で入力したパスワードを入力します。
このコマンドは、証明書を denodo_server_public_key.cer
ファイルにエクスポートします。
手順 #3. 証明書を Denodo サーバーのトラストストアにインポートします。
以下のコマンドを実行します (Linux では \
を /
に置き換えます)。
.\jre\bin\keytool -importcert -alias denodo-server-self-signed -file denodo_server_public_key.cer -cacerts -storepass "changeit" -noprompt
手順 #4. この Denodo サーバーに接続する Virtual DataPort Administration Tool に公開キーをコピーします。
このサーバーの cacerts ファイル (<DENODO_HOME>/jre/lib/security ディレクトリにあります) を、このサーバーに接続する Virtual DataPort Administration Tool が存在する すべて のコンピュータにコピーして、その cacerts で <DENODO_HOME>/jre/lib/security/cacerts ファイルを置き換えます。
cacerts ファイルには公開キーのみが含まれ、秘密キーは含まれないので、自由に共有可能であり、いかなるセキュリティリスクも生じません。
または別の方法として 、cacerts ファイルをコピーする代わりに、公開鍵のみをインポートすることもできます。これを行うには、 denodo_server_public_key.cer
ファイルを Denodo サーバーから クライアントの ディレクトリ <DENODO_HOME> にコピーし、このクライアントでコマンドラインを開いて、次のコマンドを実行します。
cd <DENODO_HOME>
.\jre\bin\keytool -importcert -alias denodo-server-self-signed -file denodo_server_public_key.cer -cacerts -storepass "changeit" -noprompt
-importcert
パラメータを使用すると、Denodo Platform に含まれる Java Runtime Environment のトラストストアに自己署名証明書がインポートされます。「changeit」は、あらゆる Java Runtime Environment に含まれる cacerts ファイルのデフォルトのパスワードです。
手順 #5. 公開キーを JDBC クライアントにインポートします。
サーバーから
denodo_server_public_key.cer
ファイルをクライアントアプリケーションのコンピュータにコピーします。JDBC クライアントが使用する Java Runtime Environment (JRE) を探します。
このコンピュータでコマンドラインを開き、以下のコマンドを実行します。
keytool -importcert -alias denodo-server-self-signed -file denodo_server_public_key.cer -cacerts -storepass "changeit" -noprompt
ODBC を使用して Denodo に接続するクライアントには、公開キーをインポートする必要はありません。
証明書をクライアントのトラストストア (cacerts ファイル) にインポートする必要があります。なぜなら、この証明書は、パブリック証明機関 (CA) によって署名されたのではなく、自己署名されているからです。したがって、デフォルトでは、外部クライアントはこの証明書を信頼せず、Denodo サーバーへの SSL 接続の確立を拒否します。
証明書を配置したら、 次のセクション に進んで、Denodo サーバーとそのクライアントで SSL を有効化します。
証明機関 (CA) への証明書要求の送信、およびその応答によるキーストアの作成¶
このセクションでは、パブリック証明機関 (CA) によって署名された証明書を使用できるように「証明書署名要求 (CSR)」を送信する方法、およびその応答を使用してキーストアを作成する方法について説明します。
Denodo サーバーを実行するホストでコマンドラインを開いて、以下のコマンドを実行します。
手順 #1. キーストアと秘密キーを作成します。
以下のコマンドを実行します (Linux では \
を /
に置き換えます)。
cd <DENODO_HOME>
.\jre\bin\keytool -genkeypair -alias denodo-server -keyalg RSA -keysize 2048 -keystore denodo_server_key_store.p12 -deststoretype PKCS12 -v -ext san=dns:hostname.example.com,dns:localhost,ip:127.0.0.1
新しいキーストアのパスワードを入力し、もう 1 回入力します。 このパスワードを書き留めます 。後続の設定中にこのパスワードが必要になります。パスワードがわからなくなった場合、回復することはできません。

これらの属性のいずれかに &、@、または Shift キーを使用するその他の記号がある場合は、記号が表す文字として記述するか、記号を省略して登録します。たとえば、「Oil & Gas Corporation」は「Oil and Gas Corporation」と入力します。
注釈
Subject Alternative Names (SAN) は、JDBC コネクションまたは ODBC コネクションでは必要ありませんが、Denodo Platform の Web ツールにアクセスする際にブラウザーで必要になります。Web ツールを使用する場合、Denodo Platform にアクセスするために使用されるすべてのホスト名と IP アドレスが、上記の形式に従って SAN エントリに追加されていることを確認してください。SAN が不要な場合、-ext オプションを完全に削除してもかまいません。
手順 #2. 証明書署名要求 (CSR) を生成します。
以下のコマンドを実行します。
.\jre\bin\keytool -certreq -alias denodo-server -file denodo_certificate_signing_request.csr -keystore denodo_server_key_store.p12 -sigalg SHA1withRSA -v
手順 #1 で入力したキーストアのパスワードを入力する必要があります。
denodo_certificate_signing_request.csr
ファイルに証明書要求が含まれているので、これを証明機関 (CA) に送信します。
手順 #3. 証明書応答をキーストアにインポートします。
証明書応答を取得したら、キーストアにインポートします。その手順は、PCKS#7 証明書または X.509 証明書のどちらを取得したのかによって異なります。
X.509 証明書 は、通常は拡張子が
cer
であり、-----BEGIN CERTIFICATE-----
で始まるテキストファイルです。この種類の証明書を取得した場合、以下の 2 つの手順を実行する必要があります。CA によって異なりますが、多くの場合、CA の中間証明書を取得する必要があります。取得した後で、以下のコマンドを実行します。
.\jre\bin\keytool -import -trustcacerts -alias intermediate_ca -keystore denodo_server_key_store.p12 -file <INTERMEDIATE CERTIFICATE FILENAME.cer>
証明書をインポートします。
.\jre\bin\keytool -import -trustcacerts -alias denodo-server -keystore denodo_server_key_store.p12 -file <YOUR CERTIFICATE FILENAME.cer>
注釈
パラメータ
alias
は、前の手順で (keytool -certreq
を実行したときに) 指定した別名と一致する必要があります。PKCS#7 証明書 は、通常は拡張子が
p7b
です。以下のコマンドを実行して、キーストアにインポートします。.\jre\bin\keytool -import -trustcacerts -alias denodo-server -keystore denodo_server_key_store.p12 -file <YOUR CERTIFICATE FILENAME.p7b>
注釈
パラメータ
alias
とkeystore
は、前の手順で (keytool -certreq
を実行したときに) 指定した別名と一致する必要があります。
手順 #4. キーストアの内容を確認します。
キーストアに適切な証明書が含まれていることを確認します。それには、コマンドラインから以下のコマンドを実行します。
.\jre\bin\keytool -list -v -keystore denodo_server_key_store.p12
以下のようなテキストが出力されます。
Alias name: denodo-server...
Creation date: Nov 15, 2017
Entry type: PrivateKeyEntry
Certificate chain length:
...
...
「Entry Type」の値は PrivateKeyEntry
または KeyEntry
である必要があります。
このコマンドから複数のエントリが返される場合があります。その場合、その中に「Entry Type」の値が PrivateKeyEntry
または KeyEntry
であるエントリが 1 つだけ存在する 必要があります。あまり認知されていない証明機関 (CA) から秘密キーを取得した場合、キーストアに複数のエントリが存在します。したがって、「keytool」は、秘密キーをインポートする際にその CA のパブリック証明書もインポートします。
手順 5. CA (および中間 CA) の証明書を Denodo サーバーのトラストストアにインポートします。
注釈
この手順は、証明書がデフォルトで信頼されていない認証局 (CA) によって署名されている (つまり、その証明書が <DENODO_HOME>/jre/lib/security/cacerts にあるデフォルトのトラストストアに含まれていない) 場合にのみ必要です。こうしたことは、使用する証明書が組織の CA またはあまり知られていない CA によって署名されている場合に起ります。
個々の CA および中間 CA の公開証明書の .cer ファイルがない場合は、キーストアからエクスポートします。それには、以下のコマンドを実行します。
キーストアの内容を確認して開始します。
cd <DENODO_HOME> .\jre\bin\keytool -list -v -keystore denodo_server_key_store.p12
CA と中間 CA の証明書の別名が表示されます (中間 CA が必要ない場合は、CA の別名のみの可能性があります)。ここで、これらの証明書をエクスポートします (適切な別名を使用します)。
.\jre\bin\keytool -exportcert -alias "my_ca" -keystore denodo_server_key_store.p12 -file my_ca.cer .\jre\bin\keytool -exportcert -alias "my_intermediate_ca" -keystore denodo_server_key_store.p12 -file my_intermediate_ca.cer
以下のコマンドを実行して、これらの証明書 (.cer ファイル) を Denodo サーバーのトラストストアにインポートします。これらのコマンドでは、上記の手順で取得した .cer ファイル、またはセキュリティチームから提供された .cer ファイルをインポートします。
.\jre\bin\keytool -importcert -alias "my_ca" -file my_ca.cer -cacerts -storepass "changeit" -noprompt .\jre\bin\keytool -importcert -alias "my_intermediate_ca" -file my_intermediate_ca.cer -cacerts -storepass "changeit" -noprompt
証明書を配置したら、 次のセクション に進んで、Denodo サーバーとそのクライアントで SSL を有効化します。
PFX ファイル (PKCS#12) からのキーストアの作成¶
PKCS #12 バンドルには、秘密キーとその X.509 証明書が含まれます。これらのバンドルのファイル拡張子は、通常は .pfx または .p12 です。
PKCS バンドルからキーストアを作成する場合、 Denodo SSL/TLS Configurator Script を使用するか、またはコマンドラインを開いて以下の手順を実行します。
手順 #1. PKCS #12 ファイルの証明書をリストします。
cd <DENODO_HOME>
.\jre\bin\keytool -list -keystore <PFX file name> -storetype pkcs12 -v
このコマンドは、このファイルに含まれる証明書をリストします。以下のようなテキストが出力されます。
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
Alias name: 91fd6b6a-5e7e-4e32-b963-6faf6439aaae
...
...
...
属性「Alias name」の値をコピーします。
手順 #2. キーをキーストアにインポートします。
.\jre\bin\keytool -importkeystore -trustcacerts --srckeystore "<PFX certificate file name>" -srcalias "<ALIAS OF THE KEY TO IMPORT>" -destkeystore denodo_server_key_store.p12 -destalias "denodo_server" -srcstoretype PKCS12 -deststoretype PKCS12
<ALIAS OF THE KEY TO IMPORT>
を前の手順で取得した「Alias name」の値で置き換えます。
PFX バンドルのパスワードと新しいキーストアのパスワードを指定する必要があります。キーのパスワードの入力を求められたら (コマンドラインに「 (RETURN if same as keystore password)
」と表示されたら)、 Enter キーを押して、キーストアと同じパスワードにします。キーとキーストアは同じパスワードを使用する必要があります。
手順 #3. キーストアの内容を確認します。
以下のコマンドを実行して、キーストアに適切な証明書が含まれていることを確認します。
.\jre\bin\keytool -list -v -keystore denodo_server_key_store.p12
以下のようなテキストが出力されます。
Alias name: denodo-server...
Creation date: Jul 1, 2016
Entry type: PrivateKeyEntry
Certificate chain length:
...
...
「Entry Type」の値は PrivateKeyEntry
または KeyEntry
である必要があります。
このコマンドから複数のエントリが返される場合があります。その場合、その中に「Entry Type」の値が PrivateKeyEntry
または KeyEntry
であるエントリが 1 つだけ存在する 必要があります。あまり認知されていない証明機関 (CA) から秘密キーを取得した場合、キーストアに複数のエントリが存在します。したがって、「keytool」は、秘密キーをインポートする際にその CA のパブリック証明書もインポートします。
手順 4. 証明書を Denodo サーバーのトラストストアにインポートします。
注釈
この手順は、証明書が自己署名される場合のみ必要です。
.\jre\bin\keytool -exportcert -alias "denodo_server" -keystore denodo_server_key_store.p12 -file denodo_server_public_key.cer
「手順 #2」で新しいキーストア用に入力したパスワードを入力します。
ここで、Denodo サーバーのトラストストアに証明書をインポートします。以下のコマンドを実行してください (Linux の場合、 \
を /
に置き換えます)。
.\jre\bin\keytool -importcert -alias "denodo_server" -file denodo_server_public_key.cer -cacerts -storepass "changeit" -noprompt
このコマンドは、Denodo Platform に含まれる Java Runtime Environment のトラストストアに証明書をインポートします。
手順 5. CA および中間 CA の証明書を Denodo サーバーのトラストストアにインポートします。
注釈
この手順は、証明書がデフォルトで信頼されていない認証局によって署名されている (つまり、その証明書が <DENODO_HOME>/jre/lib/security/cacerts にあるデフォルトのトラストストアに含まれていない) 場合にのみ必要です。こうしたことは、使用する証明書が企業の CA または比較的新しい CA やあまり知られていない CA によって署名される場合に起ります。
個々の CA および中間 CA の公開証明書の .cer ファイルがない場合は、まずキーストアからエクスポートする必要があります。キーストアの内容を確認してエクスポートを開始します。
.\jre\bin\keytool -list -v -keystore denodo_server_key_store.p12
CA と中間 CA の証明書の別名が表示されます (中間 CA が必要ない場合は、CA の別名のみの可能性があります)。ここで、これらの証明書をエクスポートします (適切な別名を使用します)。
.\jre\bin\keytool -exportcert -alias "my_ca" -keystore denodo_server_key_store.p12 -file my_ca.cer
.\jre\bin\keytool -exportcert -alias "my_intermediate_ca" -keystore denodo_server_key_store.p12 -file my_intermediate_ca.cer
最後に、これらの証明書を Denodo サーバーのトラストストアにインポートします。
.\jre\bin\keytool -importcert -alias "my_ca" -file my_ca.cer -cacerts -storepass "changeit" -noprompt
.\jre\bin\keytool -importcert -alias "my_intermediate_ca" -file my_intermediate_ca.cer -cacerts -storepass "changeit" -noprompt
注釈
プロバイダーは、CA の証明書のバンドルをファイルで提供できます (AWS RDS <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html> など)。この場合、java keytool でインポートされるのは最初の証明書のみなので、「 証明書をトラストストアにインポートするためのサンプルスクリプト 」の手順に従う必要があります。
証明書を配置したら、 次のセクション に進んで、Denodo サーバーとそのクライアントで SSL を有効化します。