2017-02-16 8 views
0

Чтобы сделать длинную историю короткой:Node.js и HTTPS сертификат обработки ошибок

Я строю приложение узла, который делает запрос с HTTPS (защищенная версия протокола HTTP). Всякий раз, когда я скучаю по-настроить свои параметры запроса, у меня эта ошибка:

Node.js Hostname/IP doesn't match certificate's altnames

Большой ... кроме того факта, что всего кода запроса завернутого с действительным try..catch блоком (который работает просто отлично .. проверил это уже). Код в основном что-то вроде этого:

try 
{ 
    https.request(options, (response) => 
    { 
     // no way I making it so far this that error 

    }).end(); 
} 
catch(ex) 
{ 
    // for some reason.. I'm not able to get here either 
} 

То, что я собираюсь сделать, это просто обработать эту ошибку в моем try..catch блоке

После прочтения некоторых должностей я узнал, что такое поведение в основном потому, что tls модуль автоматически обрабатывает запрос и, следовательно, делает эту ошибку - это хорошая информация, но на самом деле это не помогает мне справиться с этим исключением.

Некоторые другие предложили использовать этот вариант:

rejectUnauthorized: false // BEWARE: security hazard! 

Но я скорее не ... так .. Я думаю, мои вопросы:

  1. Обработка ошибки с try..catch блок должен работать here..right?
  2. Если нет - это поведение по дизайну в узле?
  3. Могу ли я обернуть код любым другим способом для обработки этой ошибки?

Просто чтобы быть ясно - я не использую любой третьей стороной LIB (так что не один виноват)

Любой вид помощи будет оценено

Благодаря

ответ

0

Вам нужно добавить обработчик события 'error' объекта запроса, возвращенного https.request(), для обработки такого рода ошибок. Например:

var req = https.request(options, (response) => { 
    // ... 
}); 
req.on('error', (err) => { 
    console.log('request error', err); 
}); 
req.end(); 

Для получения дополнительной информации см. this section in the node.js documentation about errors.

+0

человек .. Я прикрепил '.on ('error' handler' к ... ответу :(слишком поздно - спать! Спасибо за понимание! – ymz