Javaキーストアとトラストストア

TLSのためのJavaキーストアファイル

KerberosとLDAP認証を使用する場合、PrestoコーディネータへのアクセスはHTTPS経由で行う必要があります。Prestoコーディネータは、そのTLS設定にJavaキーストアファイルを使用します。これらのキーはkeytoolを使用して生成され、PrestoコーディネータのJavaキーストアファイルに保存されます。

keytoolコマンドラインのエイリアスは、Prestoコーディネータが使用するプリンシパルと一致する必要があります。

氏名を入力するよう求められます。証明書で使用される共通名を使用してください。この場合、Prestoコーディネータの修飾されていないホスト名にする必要があります。次の例では、情報が正しいことを確認するプロンプトにそれが表示されています。

keytool -genkeypair -alias presto -keyalg RSA -keystore keystore.jks
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  presto-coordinator.example.com
What is the name of your organizational unit?
  [Unknown]:
What is the name of your organization?
  [Unknown]:
What is the name of your City or Locality?
  [Unknown]:
What is the name of your State or Province?
  [Unknown]:
What is the two-letter country code for this unit?
  [Unknown]:
Is CN=presto-coordinator.example.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
  [no]:  yes

Enter key password for <presto>
        (RETURN if same as keystore password):

TLSのためのJavaトラストストアファイル

トラストストアファイルには、信頼できるTLS/SSLサーバーの証明書、またはサーバーの識別に信頼できる認証局の証明書が含まれています。HTTPS経由でPrestoコーディネータへのアクセスを保護するために、クライアントはトラストストアを設定できます。Presto CLIがPrestoコーディネータを信頼するには、コーディネータの証明書をCLIのトラストストアにインポートする必要があります。

デフォルトのJavaトラストストアに証明書をインポートするか、カスタムトラストストアにインポートすることができます。デフォルトのトラストストアを使用する場合は注意が必要です。信頼できないと判断したCAの証明書を削除する必要がある場合があります。

keytoolを使用して、証明書をトラストストアにインポートできます。この例では、presto_certificate.cerをカスタムトラストストアpresto_trust.jksにインポートします。証明書を信頼できるかどうかを確認するプロンプトが表示されます。

$ keytool -import -v -trustcacerts -alias presto_trust -file presto_certificate.cer -keystore presto_trust.jks -keypass <truststore_pass>

トラブルシューティング

Javaキーストアファイルの検証

keytoolを使用して、キーストアファイルのパスワードを確認し、その内容を表示します。

$ keytool -list -v -keystore /etc/presto/presto.jks