Request: подключение к конечной точке https и получение: Имя хоста / IP не соответствует альтернативным именам сертификатов

Созданный на 18 сент. 2015  ·  12Комментарии  ·  Источник: request/request

Я пытаюсь подключиться к внешней службе https REST на heroku со своего локального хоста со следующим кодом:

request(
            {
                url: config.get('host') +req.originalUrl,
                method: req.method,
            }, function (error, response, body) {

            })

Я получаю следующую ошибку в обратном вызове:

Имя хоста / IP не соответствует альтернативным именам сертификата: "Хост: localhost. Не входит в альтернативные имена сертификата: DNS: _. Herokuapp.com, DNS: herokuapp.com "
Хост: localhost. отсутствует в альтернативных именах сертификата: DNS: _. herokuapp.com, DNS: herokuapp.com

если я подключаюсь к той же службе, установленной локально, все работает правильно, поэтому это должно быть связано с https.

Любая помощь?

Самый полезный комментарий

Это ужасно

Все 12 Комментарий

Каков точный URL вашего запроса config.get('host') +req.originalUrl ?

Я тоже это получаю. Я использую самоподписанный сертификат и не хочу выполнять проверку имени хоста. У меня это в моих просьбах

agentOptions: {
        ca: fs.readFileSync('ca.cert.pem')
    }

Как установить ignoreHostname?

Вы пробовали установить для переменной rejectUnauthorized значение false?

`` `` `запрос ({
url: config.get ('host') + req.originalUrl,
метод: req.method,
rejectUnauthorized: false
},
function (error, response, body) {

        })```

`` `` `

Было бы неплохо, если бы rejectUnauthorized: false было где-нибудь на первой странице документации.

Разве rejectUnauthorized: false заставляет вас принимать какие-либо сертификаты сервера? В таком случае я не считаю это верным решением.
Я хотел бы проверить сервер, убедившись, что сертификат подписан доверенным центром сертификации (в моем случае это мой собственный центр сертификации). Я не хочу заглушать все это и делать это небезопасным.

Это ужасно

Вы должны соответствовать сертификат сервера в CommonName для клиента hostname .

Вы должны сопоставить CommonName сертификата сервера с именем хоста клиента.

Почему так? Почему клиент заботится о собственном имени хоста, указанном в сертификате сервера? Речь идет об аутентификации сервера. Спасибо

К вашему сведению, у меня возникла эта ошибка, когда я пересылал запросы, я использовал request({host: 'something.com'... headers: req.headers... То, что я сначала не понял, так это то, что в заголовках было host: 'localhost' , которое было виновником. Я заменил его, и теперь он все в порядке.

Я считаю, что сталкиваюсь с той же проблемой. Я получаю следующую ошибку при использовании узла 6.10.3 и запроса 2.88:

Ошибка: имя хоста / IP не соответствует альтернативным именам сертификата: «Хост: https. Не входит в альтернативные имена сертификата:

Я отследил это до кода узла tls.js. Как-то "https". передается в качестве имени хоста запросом на узел. Если я установил для rejectUnauthorized значение false, мой код будет работать. Итак, я передаю правильное имя хоста в URL-адресе.

Я считаю, что это можно смягчить, используя ключ api, предоставленный целевым доменом.

К вашему сведению, у меня возникла эта ошибка, когда я пересылал запросы, я использовал request({host: 'something.com'... headers: req.headers... То, что я сначала не понял, так это то, что в заголовках было host: 'localhost' , которое было виновником. Я заменил его, и теперь он все в порядке.

моя проблема решена. Я забыл изменить req.header и сменить хост.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги