

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 2 中的传输中 HiveServer加密
<a name="hs2-encryption-intransit"></a>

从 Amazon EMR 版本 6.9.0 开始，作为安全配置的一部分， HiveServer2 (HS2) 已启用 TLS/SSL。[2 中的传输中 HiveServer加密](#hs2-encryption-intransit)这会影响您连接到启用传输中加密的 Amazon EMR 集群上 HS2 运行的方式。要连接 HS2，必须修改 JDBC `TRUSTSTORE_PASSWORD` URL 中的`TRUSTSTORE_PATH`和参数值。以下 URL 是 HS2 带有所需参数的 JDBC 连接的示例：

```
jdbc:hive2://HOST_NAME:10000/default;ssl=true;sslTrustStore=TRUSTSTORE_PATH;trustStorePassword=TRUSTSTORE_PASSWORD
```

使用下面的相应说明进行集群内或集群外 HiveServer 2 加密。

------
#### [ On-cluster HS2 access ]

如果您在 SSH 连接到主节点后使用 Beeline 客户端访问 HiveServer 2，则参考`/etc/hadoop/conf/ssl-server.xml`使用配置`TRUSTSTORE_PATH``ssl.server.truststore.location`和查找和`TRUSTSTORE_PASSWORD`参数值。`ssl.server.truststore.password`

以下示例命令可帮助您检索这些配置：

```
TRUSTSTORE_PATH=$(sed -n '/ssl.server.truststore.location/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}')
TRUSTSTORE_PASSWORD=$(sed -n '/ssl.server.truststore.password/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}')
```

------
#### [ Off-cluster HS2 access ]

 如果您从 Amazon EMR 集群之外的客户端访问 HiveServer 2。您可以使用以下方法之一来获取和：`TRUSTSTORE_PATH``TRUSTSTORE_PASSWORD`
+ 将[安全配置](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html)期间创建的 PEM 文件转换为 JKS 文件，并在 JDBC 连接 URL 中使用该文件。例如，对于 openssl 和 keytool，请使用以下命令：

  ```
  openssl pkcs12 -export -in trustedCertificates.pem -inkey privateKey.pem -out trustedCertificates.p12 -name "certificate"
  keytool -importkeystore -srckeystore trustedCertificates.p12 -srcstoretype pkcs12 -destkeystore trustedCertificates.jks
  ```
+ 或者，参考 `/etc/hadoop/conf/ssl-server.xml` 以使用配置 `ssl.server.truststore.location` 和 `ssl.server.truststore.password` 来查找 `TRUSTSTORE_PATH` 和 `TRUSTSTORE_PASSWORD` 参数值。将信任存储库文件下载到客户端计算机，并使用客户端计算机上的路径作为 `TRUSTSTORE_PATH`。

  有关从 Amazon EMR 集群外部的客户端访问应用程序的更多信息，请参阅[使用 Hive JDBC 驱动程序](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/HiveJDBCDriver.html)。

------