我们有一台Teiid 12.3服务器正在运行,它是用ssl配置的,我们能够使用pentaho etl、squirrel sql client、Tableau等工具连接这台Teiid服务器,我们使用trustore文件来连接这些工具,但我们无法在Apache NIfi中连接Teiid服务器。我们尝试了以下方法来包含trustore--。
在运行的nifi.bat中添加trustore。
-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
加工者
在teiid连接网址中添加了trustore的详细信息--。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,但没有用,出现同样的错误。
文件名: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
你是否验证了Teiid服务器在TLS协商过程中呈现了完整的证书链,并且完整的证书链存在于你配置的truststore中?PKIX路径构建错误表明客户端(NiFi)无法将服务器(Teiid)呈现的公证书映射到其truststore中的可信证书。请提供你的Teiid服务器的公证书(必要时主机名被删节)和你与NiFi关联的truststore的内容。
回复意见。
属性值 nifi.security.truststore
在 $NIFI_HOME/conf/nifi.properties
是设置NiFi应用信任store的路径。问题中没有指定从NiFi到Teiid的通信机制。如果它是流程中的一个组件(例如处理器或控制器服务),这些组件应该引用一个 SSLContextService
控制器服务,并在那里指定一个 truststore 路径。如果组件不支持SSL CS,那么DBCP JDBC连接的URL应该是 包括设置 启用TLS或功能请求Jira应提交。
非常感谢daggett.Thanks a lot...你的解决方案工作(bootstrap.conf)。
1)将Trustore "ssl-teiid.truststore "放置在NiFi bin目录下2)进入Nifi conf目录,打开文件bootstrap.conf3)在其中添加两个参数,提到Trustore路径和密码,参考-java.arg.18=-Djavax.net.ssl.trustStore=E:nifi-1.11.4-binnifi-1.11.4binssl-teiid.truststore。参考这个-java.arg.18=-Djavax.net.ssl.trustStore=E:nifi-1.11.4-binifi-1.11.4binssl-teiid.truststore。
java.arg.19.=-Djavax.net.ssl.trustStorePassword=mention the Trustore password。
4)启动NiFi5)为DataVirtualization url创建DBConnectionPool服务.6)创建ExecuteSQL处理器,使用上面创建的DBConnectionPool服务,并通过它查询DataVirtualization中的任何一个视图。
非常感谢你安迪的帮助。