Как подключить NIFI к виртуализации данных Teiid с помощью SSL, настроенного в teiid? - PullRequest
0 голосов
/ 28 апреля 2020

У нас работает сервер Teiid 12.3, настроенный с помощью ssl. Мы можем подключить этот teiid-сервер с помощью таких инструментов, как pentaho etl, squirrel sql client, Tableau et c. мы используем файл trustore для подключения этих инструментов. Но мы не можем подключить сервер Teiid в Apache NIfi. Мы попробовали следующие способы включить trustore -

  1. Добавление trustore в прогоне 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=teiid-dummy.truststore -Djavax.net.ssl.trustStorePassword=1234
  2. Создание StandardSSLContextService, но мы не можем использовать этот сервис в ExecuteSQL или QueryDatabaseTableRecord процессорах

  3. Добавлены подробные сведения о трасте в URL-адресе подключения teiid - 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

    • Ошибки: TEIID 200020 Ошибка при установке сокета на хост и порт. Sun.security.validator.validatorException: не удалось построить путь PKIX:
  4. также настроен траст в нижеследующем файле, но без использования выдает ту же ошибку.

Имя файла: 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

Ошибка

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Большое спасибо, Даггетт. Большое спасибо ... Ваше решение сработало (bootstrap .conf)

Выполнено нижеприведенный шаг, и оно работает отлично. 1) Поместите Trustore «ssl-teiid.truststore» в каталог bin NiFi. 2) Go в каталог Nifi 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 = указать пароль Trustore

4) Запустить NiFi 5) Создан сервис DBConnectionPool для URL-адреса DataVirtualization. 6) Создайте процессор Execute SQL, используйте созданный выше сервис DBConnectionPool и запросите через него любое из представлений DataVirtualization

Огромное спасибо Энди за вашу помощь.

0 голосов
/ 28 апреля 2020

Проверено ли, что сервер Teiid представляет полную цепочку сертификатов во время согласования TLS и что вся цепочка присутствует в настроенном хранилище доверенных сертификатов? Ошибки построения пути PKIX указывают на то, что клиент (NiFi) не может сопоставить сертификат publi c, представленный сервером (Teiid), с доверенным сертификатом в его доверенном хранилище. Пожалуйста, предоставьте сертификат publi c (имя хоста, отредактированное при необходимости) вашего сервера Teiid и содержимое склада доверенных сертификатов, который вы связываете с NiFi.

Ответ на комментарий:

Значение свойства nifi.security.truststore в $NIFI_HOME/conf/nifi.properties указывает путь к хранилищу доверенных сертификатов приложения NiFi. Механизм связи от Нифи до Тейида в вопросе не указан. Если это компонент в потоке (например, служба процессора или контроллера), эти компоненты должны ссылаться на службу контроллера SSLContextService и указывать путь хранилища доверенных сертификатов там. Если компонент не поддерживает SSL CS, либо URL-адрес соединения DBCP JDB C должен включать настройки для включения TLS, либо следует подать запрос на добавление Jira.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...