答案 0 :(得分:5)
使用TLS证书保护NiFi。通过Ambari安装和保护时,默认情况下Ambari会安装NiFi证书颁发机构(CA),并为每个NiFi节点生成证书并获取该CA签署的证书。 NiFI节点私钥被加载到每个NiFi节点的keystore.jks文件中,并且CA的公钥被加载到每个NiFi节点上的truststore.jks文件中。 当客户端(上述情况下的Ranger是客户端)启动与NiFi的连接时,将协商双向TLS连接。这涉及服务器将节点的公钥(从keystore.jks中的证书派生)发送到客户端。客户端将根据truststore.jks文件中的trustedCertEntries列表检查该密钥。如果它找到服务器公钥或在truststore.jks中签署该服务器密钥的CA的公钥,它将信任服务器提供的证书。然后,客户端将其客户端证书(从游侠keystore.jks私钥派生)提供给目标NiFi节点。 NiFi将按照上述相同步骤确定是否应该使用其truststore.jks文件信任该客户端提供的证书。 您看到的错误表明此双向TLS协商失败,因为Ranger不信任NiFi提供的证书。如果你超越了这个,你也会失去信任的另一种方式。您需要确保NiFi节点和Ranger使用的truststore.jks包含此连接两端的所有必需“trustedCertEntries”。 (这意味着在Ranger的truststore.jks文件中加载NiFi CA的公钥,并在NiFi实例使用的truststore.jks文件中加载Ranger证书的公钥。