Как исправить соединение с сервером, используя https-клиент с базовым авторизацией и сертификатом tls pfx? - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь подключить сервер третьей части с базовым сертификатом auth и pfx tls, используя платформу node express. Я не уверен; Где мне нужно установить основные параметры auth, cert file и header?

Для вызова операции get с удаленного сервера я попытался использовать https client и tls tool. Запрос требует; заголовок = базовая аутентификация, schemaVersion, id, applicationName

В дополнение к отправке базовых учетных данных, отправьте в заголовок HTTP следующее: Content-Type: application / json Принять: приложение / JSON

, а также для запроса требуется один дополнительный параметр, т. Е. Категории

onst https = require('https');
    const options = {
          hostname: 'https://yadda/cards/getAssets',
          headers: {
            Authorization: 'Basic ' + new Buffer(username + ':' + passw).toString('base64'),
            schemaVersion: '2.0.0',
            id: '0000000',
            applicationName: 'yadda',
            Accept: 'application/json',
            'Content-Type': 'application/json',
          },

          pfx: fs.readFileSync('/somefile.cert.pfx'),
          passphrase: 'passphrase',
          categories: 'food',
        };

       https
          .get(options, (response: any) => {
            response.on('data', (d: any) => {
              console.log(`BODY: `, d);
            });
          })
          .on('error', (e: any) => {
            console.error('Error: ', e);
          });

// With Tls tool, I tried as;
var fs = require('fs');
    var socket = tls.connect(options, () => {
      console.log('client connected');
      process.stdin.pipe(socket);
      process.stdin.resume();
    });

Я хотел бы подключиться к удаленному серверу и получить данные в ответ; вместо этого я получаю следующую ошибку;

ERROR] Error:  { Error: getaddrinfo ENOTFOUND https://yadd/cards/getAssets:443
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
  errno: 'ENOTFOUND',
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',

1 Ответ

0 голосов
/ 14 мая 2019
      hostname: 'https://yadda/cards/getAssets',

Здесь ожидается имя хоста (например, www.example.com), а не URL. Заданная вами строка будет использоваться в качестве имени хоста, и поиск DNS не удастся:

 ERROR] Error:  { Error: getaddrinfo ENOTFOUND https://yadd/cards/getAssets:443
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...