2015-05-27 11 views
10

Uaktualniłem Node.js na moim komputerze Mac do najnowszego, 0.12.4, a także NPM do wersji 2.10.1, i ponownie uruchomiłem instalację npm dla mojego projektu Express .Zawieszenie protokołu SSL nie powiodło się z serwerem Express pod najnowszym węzłem i NPM

Teraz, gdy odwiedzam https://localhost:3001, otrzymuję komunikat "Strona internetowa jest niedostępna/ERR_CONNECTION_REFUSED" w przeglądarce Chrome. Kiedy uruchamiam curl -v https://localhost:3001 uzyskać

curl -v https://localhost:3001/ 
* Hostname was NOT found in DNS cache 
* Trying ::1... 
* Connected to localhost (::1) port 3001 (#0) 
* Server aborted the SSL handshake 
* Closing connection 0 
curl: (35) Server aborted the SSL handshake 

Jest to z pewnością wynik modernizacji node.js, ponieważ problem pojawił się natychmiast po uaktualnieniu.

zacznę mój serwis tak:

options = { 
    key: fs.readFileSync('sslkey.pem'), 
    cert: fs.readFileSync('sslcert.pem') 
}; 
http.createServer(app).listen(settings.apiPort); 
https.createServer(options, app).listen(settings.apiSSLPort); 
console.log('Listening on ports: ' + settings.apiPort + ' and ' + settings.apiSSLPort); 

Czy ktoś ma jakieś pomysły, co jest przyczyną tego problemu?

+0

spróbować inną przeglądarkę i wyczyścić pamięć podręczną. – deek

+0

Co pokazuje 'curl -k -v https: // localhost: 3001 /'? Opcja '-k' mówi" curl ", aby umożliwić" niezabezpieczone "połączenia. To, w połączeniu z opcją '-v', powinno pomóc dostarczyć więcej informacji o certyfikacie używanym przez twój serwer. Alternatywnie możesz użyć 'openssl s_client -connect localhost: 3001'. Ciekawą częścią będzie ustalenie właśnie _when_, podczas uzgadniania SSL, połączenie zostanie zamknięte. – Castaglia

Odpowiedz

2

miałem ten sam problem, spróbuj tego:

options = { 
     key: fs.readFileSync('sslkey.pem', 'utf-8'), 
     cert: fs.readFileSync('sslcert.pem', 'utf-8'), 
     ca: fs.readFileSync(<CA_FILE>, 'utf-8'), 
     requestCert: true, 
     rejectUnauthorized: false 
    }; 
Powiązane problemy