我们有一个使用ssl配置的Teiid12.3服务器正在运行。我们能够使用像pentaho etl、squirrel client、Tableau等工具连接这个teiid服务器,我们正在使用trustore文件连接这些工具。但是我们无法连接Apache NIfi中的Teiid服务器。我们尝试了以下方法来包括信任-
- set JAVA\_ARGS=`-Dorg.apache.nifi.bootstrap.config.log.dir=%NIFI_LOG_DIR%` `-Dorg.apache.nifi.bootstrap.config.pid.dir=%NIFI_PID_DIR%` `-Dorg.apache.nifi.bootstrap.config.file=%BOOTSTRAP_CONF_FILE%` `-Djavax.net.ssl.trustStore=teiid-dummy.truststore` `-Djavax.net.ssl.trustStorePassword=1234`
StandardSSLContextService,但我们不能在ExecuteSQL或QueryDatabaseTableRecord处理器中使用此服务jdbc:teiid:VDB@mms://abc123.com:443;enableTLS=true;trustStorePath=E:/nifi-1.11.4-bin/nifi-1.11.4/bin/teiid_dummy.truststore;trustStorePassword=1234中添加了trustore详细信息- Errors: TEIID 200020 Error establishing socket to host and port. Sun.security.validator.validatorException : PKIX path building failed:
文件名: Nifi.properties
nifi.security.truststore==E:\nifi-1.11.4-bin\nifi-1.11.4\bin\teiid-dummy.truststore
nifi.security.truststoreType=jks
nifi.security.truststorePasswd=1234文件名: run_nifi.bat
set JAVA_ARGS=-Dorg.apache.nifi.bootstrap.config.log.dir=%NIFI_LOG_DIR% -Dorg.apache.nifi.bootstrap.config.pid.dir=%NIFI_PID_DIR% -Dorg.apache.nifi.bootstrap.config.file=%BOOTSTRAP_CONF_FILE% -Djavax.net.ssl.trustStore=teiid3-ssl.truststore -Djavax.net.ssl.trustStorePassword=1234发布于 2020-04-28 15:59:50
您是否验证了Teiid服务器在TLS协商期间显示了完整的证书链,并且在您配置的信任库中是否存在完整的证书链?PKIX路径构建错误表示客户端(NiFi)无法将服务器(Teiid)提供的公共证书映射到其信任存储中的受信任证书。请提供您的Teiid服务器的公共证书(必要时修改主机名)和与NiFi关联的信任库的内容。
对评论的答复:
nifi.security.truststore中的属性值$NIFI_HOME/conf/nifi.properties是设置NiFi应用程序信任存储的路径的地方。问题中没有指定从NiFi到Teiid的通信机制。如果它是流程中的一个组件(例如处理器或控制器服务),那么这些组件应该引用一个SSLContextService控制器服务并在那里指定一个信任存储路径。如果组件不支持SSL,则DBCP连接URL应该包括设置来启用TLS,或者应该提交一个特性请求Jira。
发布于 2020-05-07 04:22:42
非常感谢daggett.Thanks,很多...your解决方案成功了(bootstrap.conf)
按照下面的步骤,它工作得很好。1)将Trustore“SSL-teiid.Truststore”放置在NiFi bin目录中,2)转到bootstrap.conf目录并打开文件bootstrap.conf 3),在其中添加两个参数,提到Trustore路径和密码。请参阅此- java.arg.18=-Djavax.net.ssl.trustStore=E:/nifi-1.11.4-bin/nifi-1.11.4/bin/ssl-teiid.truststore
java.arg.19.=-Djavax.net.ssl.trustStorePassword=mention信托商店密码
4)启动NiFi 5)为DataVirtualization url创建DBConnectionPool服务。6)创建ExecuteSQL处理器,使用上面创建的DBConnectionPool服务并通过它查询任何DataVirtualization视图
非常感谢安迪的帮助。
https://stackoverflow.com/questions/61482625
复制相似问题