2013-08-31 2 views
0

Как я могу проверить SSL-сертификат на https данного домена NodeJS?Проверить сертификат ssl в nodejs

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

-

Я думаю, что этот код должен поднять ошибку при беззнаковом или selfsigned сертификата.

var https = require('https'); 

var options = { 
    host: 'daarkoob.ir', 
    port: 2222, 
    path: '/', 
    method: 'GET', 
    rejectUnauthorized:true 
}; 

var req = https.request(options, function(res) { 
    console.log("statusCode: ", res.statusCode); 
    console.log("headers: ", res.headers); 
}); 
req.end(); 

req.on('error', function(e) { 
    console.error(e); 
}); 

https://daarkoob.ir:2222 является самозаверенный сертифицировано, поэтому выше код должен поднять ошибку во время surfing.but ничего не произошло.

+1

Вы посмотрели варианты «запроса»? http://nodejs.org/docs/v0.7.8/api/https.html#https_https_request_options_callback 'rejectUnauthorized' проверяет сертификат на список ЦС. – WiredPrairie

+0

@WiredPrairie: Да, но это не работает для меня. –

ответ

0

Из документации: rejectUnauthorized: Если true, сертификат сервера проверяется на список прилагаемого УЦ. Событие 'error' испускается, если проверка не удалась. Проверка происходит на уровне соединения, до отправляется HTTP-запрос . По умолчанию true.

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

+1

Итак, узел не связывает cacert.pem? – CMCDragonkai

+0

На самом деле это в комплекте: https://github.com/nodejs/node/blob/master/src/node_root_certs.h – tkSimon

Смежные вопросы