Java 密钥库和信任库

用于 TLS 的 Java 密钥库文件

使用 Kerberos 和 LDAP 身份验证时,必须通过 HTTPS 访问 Presto 协调器。Presto 协调器使用 Java 密钥库 文件进行 TLS 配置。这些密钥使用 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