Pracuję nad małą aplikacją, która loguje się do mojego lokalnego routera bezprzewodowego (Linksys), ale mam problem z samopodpisanym certyfikatem ssl routera.
Uruchomiłem wget 192.168.1.1 i otrzymałem:
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'.
W węźle wychwytywany błąd to:
{ [Error: socket hang up] code: 'ECONNRESET' }
Mój obecny przykładowy kod to:
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);
});
Jak mogę uzyskać polecenie, aby node.js zrobił odpowiednik „--no-check-certificate”?
node.js
https
ssl-certificate
Geuis
źródło
źródło
W opcjach żądania spróbuj uwzględnić następujące elementy:
źródło
rejectUnauthorized
opcją i niczym innymrejectUnauthorized
był wystarczająco dobry wszystko inne ootb. Używanie rozszerzenia w ramach vs. Lepiej jeszcze pozwól na konfigurację PEM, zrobię to później ...Nie wierz wszystkim, którzy próbują cię zwieść.
W swoim żądaniu wystarczy dodać:
Jeśli włączysz nieautoryzowane certyfikaty, w ogóle nie będziesz chroniony (narażony na działanie MITM z powodu nie sprawdzania tożsamości), a praca bez SSL nie będzie dużą różnicą. Rozwiązaniem jest określenie oczekiwanego certyfikatu urzędu certyfikacji, jak pokazano w następnym fragmencie. Upewnij się, że nazwa pospolita certyfikatu jest identyczna z adresem podanym w żądaniu (jak określono w hoście):
Otrzymasz wtedy:
Przeczytaj ten artykuł (ujawnienie: post na blogu napisany przez autora tej odpowiedzi), aby zrozumieć:
źródło
Dodaj następującą zmienną środowiskową:
np. z
export
:(wielkie dzięki dla Juanry)
źródło
webdriver-manager update
Dodanie do odpowiedzi na @Armand:
Jeśli korzystasz z systemu Windows:
Dzięki: @ weagle08
źródło
Możesz także utworzyć instancję żądania z domyślnymi opcjami:
źródło
W przypadku MeteJS możesz ustawić za pomocą npmRequestOptions.
źródło
Możesz też spróbować dodać w lokalnej rozpoznawaniu nazw (
hosts
plik znaleziony w kataloguetc
w większości systemów operacyjnych, szczegóły różnią się) coś takiego:i dalej
będzie działać.
źródło
rejectUnauthorized: false