

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

# 用于 Apache Ranger 与 Amazon EMR 集成的 TLS 证书
<a name="emr-ranger-admin-tls"></a>

Apache Ranger 与 Amazon EMR 的集成要求使用 TLS 加密从 Amazon EMR 节点到 Ranger Admin 服务器的流量，并且 Ranger 插件使用双向 TLS 身份验证向 Apache Ranger 服务器进行身份验证。Amazon EMR 服务需要 Ranger Admin 服务器的公共凭证（在前面的示例中指定）和私有凭证。

**Apache Ranger 插件证书**

Apache Ranger 插件公共 TLS 凭证必须可供 Apache Ranger 管理服务器访问，以在插件连接时进行验证。执行此操作共有三种方式。

**方法 1: 在 Apache Ranger Admin 服务器中配置信任库**

在 ranger-admin-site .xml 中填写以下配置以配置信任库。

```
<property>
    <name>ranger.truststore.file</name>
    <value><LOCATION TO TRUSTSTORE></value>
</property>

<property>
    <name>ranger.truststore.password</name>
    <value><PASSWORD FOR TRUSTSTORE></value>
</property>
```

**方法 2: 将证书加载到 Java cacerts 信任库**

如果您的 Ranger Admin 服务器没有在其 JVM 选项中指定信任库，那么您可以将插件公共凭证放在默认的 cacerts 存储中。

**方法 3: 创建信任库并指定为 JVM 选项的一部分**

在 `{RANGER_HOME_DIRECTORY}/ews/ranger-admin-services.sh` 中，修改 `JAVA_OPTS`，使其包含 `"-Djavax.net.ssl.trustStore=<TRUSTSTORE_LOCATION>"` 和 `"-Djavax.net.ssl.trustStorePassword=<TRUSTSTORE_PASSWORD>"`。例如，在现有 JAVA\$1OPTS 之后添加以下行。

```
JAVA_OPTS=" ${JAVA_OPTS} -Djavax.net.ssl.trustStore=${RANGER_HOME}/truststore/truststore.jck -Djavax.net.ssl.trustStorePassword=changeit"
```

**注意**  
如果任何用户能够登录 Apache Ranger Admin 服务器并查看正在运行的进程，例如使用 `ps` 命令时，此规范可能会公开信任库密码。

**使用自签名证书**

不建议使用自签名凭证作为凭证。自签名凭证不得撤销，自签名凭证可能不符合内部安全要求。