Estou trabalhando em um pequeno aplicativo que efetua login no meu roteador local sem fio (Linksys), mas estou com um problema com o certificado SSL autoassinado do roteador.
Executei o wget 192.168.1.1 e obtive:
ERROR: cannot verify 192.168.1.1's certificate, issued by `/C=US/ST=California/L=Irvine/O=Cisco-Linksys, LLC/OU=Division/CN=Linksys/[email protected]':
Self-signed certificate encountered.
ERROR: certificate common name `Linksys' doesn't match requested host name `192.168.1.1'.
To connect to 192.168.1.1 insecurely, use `--no-check-certificate'.
No nó, o erro que está sendo capturado é:
{ [Error: socket hang up] code: 'ECONNRESET' }
Meu código de amostra atual é:
var req = https.request({
host: '192.168.1.1',
port: 443,
path: '/',
method: 'GET'
}, function(res){
var body = [];
res.on('data', function(data){
body.push(data);
});
res.on('end', function(){
console.log( body.join('') );
});
});
req.end();
req.on('error', function(err){
console.log(err);
});
Como posso obter o node.js para fazer o equivalente a "--no-check-certificate"?
node.js
https
ssl-certificate
Geuis
fonte
fonte
Nas opções de solicitação, tente incluir o seguinte:
fonte
rejectUnauthorized
opção e mais nadarejectUnauthorized
era bom o suficiente tudo ootb. Usando a extensão de código vs. Melhor ainda permitir a configuração do PEM, farei isso a seguir ...Não acredite em todos aqueles que tentam enganar você.
Em sua solicitação, basta adicionar:
Se você ativar certificados não autorizados, não estará totalmente protegido (exposto ao MITM por não validar a identidade) e trabalhar sem SSL não fará grande diferença. A solução é especificar o certificado de CA que você espera, conforme mostrado no próximo snippet. Verifique se o nome comum do certificado é idêntico ao endereço que você chamou na solicitação (conforme especificado no host):
O que você receberá então é:
Leia este artigo (divulgação: postagem do blog escrita pelo autor desta resposta) aqui para entender:
fonte
Adicione a seguinte variável de ambiente:
por exemplo, com
export
:(com grandes agradecimentos a Juanra)
fonte
webdriver-manager update
Adicionando à resposta do @Armand:
Se você usa o Windows:
Obrigado a: @ weagle08
fonte
Você também pode criar uma instância de solicitação com opções padrão:
fonte
Para meteorJS, você pode definir com npmRequestOptions.
fonte
Ou você pode tentar adicionar a resolução de nome local (
hosts
arquivo encontrado no diretórioetc
na maioria dos sistemas operacionais, os detalhes diferem) algo como isto:e a seguir
vai funcionar.
fonte
rejectUnauthorized: false