

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 Admin 伺服器存取，以便在外掛程式連接時進行驗證。有三種不同的方法執行此操作。

**方法 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 cacert 信任存放區**

如果您的 Ranger Admin 伺服器未在 JVM 選項中指定信任存放區，您可以將外掛程式公有憑證放在預設 cacert 存放區中。

**方法 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` 命令時)，則此規格可能會暴露信任存放區密碼。

**使用自我簽署的憑證**

不建議使用自我簽署的憑證作為憑證。自我簽署的簽憑可能無法撤銷，且可能不符合內部安全需求。