NiFi: настройка SSLContext, Truststore или Keystore Certification - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь получить данные из инструмента API DC Metro .Я использую ссылку "Train Position".

Мне нужно настроить SSLContextService, но у меня есть только первичный и вторичный ключи, предоставленные веб-сайтом.Например, ключи имеют следующую форму:

5bcf1f7d091f4f618f1eefbefe23a56e
f15633bd2dd44a1f944c96361c0ab26f

Как мне настроить это в SSLContext части NiFi?Я использую GetHTTP.Вот изображение того, что у меня сейчас есть: сначала конфигурация GetHTTP, а затем конфигурация SSL:

enter image description here

Следующая конфигурация:

enter image description here

Я понятия не имею, как использовать эти клавиши выше в качестве Truststore или Keystore, или если это даже то, что я должен делать,У меня есть имя файла Keystore, указанное в cacerts, но я знаю, что этих ключей там нет.Я пытался преобразовать их в .pem, и это было ошибкой, особенно когда я помещал их в keystore.jks.

Я получаю эту ошибку:

enter image description here

Как получить доступ?

Полезная ссылка на ссылку API .

1 Ответ

0 голосов
/ 23 октября 2018

Обратите внимание, что заданные вами ключи API (например, 7960778b79e547969a9c201ceeda50d8) считаются конфиденциальной информацией, как и пароль.

Эти ключи используются для доступа к API и не связаны с хранилищем ключей / доверенными каталогами NiFi, которые используются для согласования SSL.Использование Java cacerts в этом случае является правильным, но вам не нужно добавлять ключ API в хранилище доверенных сертификатов.

На этой странице описывается форма, которую должен принять запрос: https://developer.wmata.com/docs/services/5763fa6ff91823096cac1057/operations/5763fb35f91823096cac1058#TrainPosition

Я предлагаюВы прочитали, как использовать веб-API и делать веб-запросы, чтобы затем понять, как используются ваши ключи API.Они приводят пример скручивания внизу:

curl -v -X GET "https://api.wmata.com/TrainPositions/TrainPositions?contentType={contentType}"
-H "api_key: {subscription key}"

--data-ascii "{body}" 

{ключ подписки} - это ваш ключ API, {contentType} - это тип содержимого ответа HTTP.Если вы не знакомы с этими терминами, вам может понадобиться изучить их.Я рекомендую сначала выполнить приведенную выше команду curl, а затем перенести ее на NiFi.

curl -v -X GET "api.wmata.com/TrainPositions/TrainPositions?contentType=json" -H "api_key:e13626d03d8e4c03ac07f95541b3091b "у меня работает.(Это тестовый API-ключ с веб-сайта wmata).

В InvokeHTTP вы бы добавили свойство процессора (нажмите символ плюса вверху справа), называемое api_key, со значением, установленным для вашего ключа подписчика (я не понимаюне знаю, является ли это первичным ключом), и установите для свойства «Атрибуты для отправки» значение «api_key».Это отправит атрибут api_key (ключ) в качестве заголовка с именем api_key, как мы это делали выше в curl с -H "api_key: e136 ...".

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