CLI newman возвращает ошибку: невозможно получить сертификат локального эмитента в сборке teamcity

Используя CLI newman nodeJS для запуска набора тестов postman, я получаю следующую ошибку:

ошибка: не удалось получить сертификат локального эмитента

Он запускается как часть сборки Teamcity CI с помощью следующей команды:

newman run https://www.getpostman.com/collections/<COLLECTION-ID-HERE>

Он работает на Windows, и у нас есть корпоративный прокси-сервер (ZScaler).

Как заставить Ньюмана работать?


person alastairtree    schedule 24.12.2018    source источник
comment
ленивое и грязное решение: npm config set strict-ssl false   -  person EMottet    schedule 18.03.2019
comment
Ленивый, грязный и небезопасный, поскольку он открывает все ваши приложения NodeJS для SSL-атак «человек посередине».   -  person alastairtree    schedule 19.03.2019


Ответы (2)


Просто добавьте --insecure перед collectionID, т.е.:

newman запустить https://www.getpostman.com/collections/?apiKey="your-Postman- API-ключ" -- небезопасно

Также при запуске выполнения с использованием файла json просто добавьте --insecure Таким образом, ваша команда должна быть:

Ньюман запустить .postman_collection.json --insecure

person Chetan Yeshi    schedule 30.04.2020
comment
Это означает, что ваш набор тестов будет пройден, если в вашем приложении есть какие-либо другие проблемы с SSL, что плохо для безопасности. Представьте, что ваш SSL-сертификат был отозван из-за того, что ваш интернет-провайдер был взломан. Было бы полезно узнать, когда ваши автоматические ночные тесты Ньюмана начинают давать сбой? Почти всегда лучше исправить конфигурацию newman с правильным сертификатом, чем просто отключить всю защиту с помощью --insecure. - person alastairtree; 12.11.2020

Проблема в том, что newman не может найти (или не знает) самоподписанный SSL-сертификат, используемый прокси-сервером, настроенным в хранилище сертификатов Windows. Самый простой способ сделать newman (и фактически любое последнее приложение nodeJS) осведомленным о сертификате — использовать переменную среды:

на окнах:

SET NODE_EXTRA_CA_CERTS=c:\some-folder\certificate.cer

в линуксе:

export NODE_EXTRA_CA_CERTS=/c/some-folder/certificate.cer

Вам также может понадобиться установить URL-адрес самого прокси-сервера с помощью переменной HTTP_PROXY=http://example.com:1234 env.

В качестве альтернативы переменные среды можно добавить в среду выполнения сборки teamcity с помощью функции параметров сборки. из Teamcity

Обратите внимание, что это для Node.js 7.3.0 и выше (и версии LTS 6.10.0 и 4.8.0).

person alastairtree    schedule 24.12.2018
comment
Столкнулся с этим на инстансе Amazon Linux 2 EC2, несмотря на то, что ОС доверяла корневому ЦС компании. Установка переменной NODE_EXTRA_CA_CERTS так, чтобы она указывала на корневой сертификат, действительно устранила проблему. Спасибо! - person vastlysuperiorman; 16.05.2019