2015-05-27 11 views
10

Ho aggiornato Node.js sul mio Mac all'ultimo, 0.12.4, così come NPM a 2.10.1, e ho ri-eseguito l'installazione di npm per il mio progetto Express .Handshake SSL non riuscito con il server Express sotto l'ultimo Node e NPM

Ora, quando visito lo https://localhost:3001, viene visualizzato "Questa pagina Web non è disponibile/ERR_CONNECTION_REFUSED" in Chrome. Quando eseguo curl -v https://localhost:3001 ottengo

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 

Questo è sicuramente un risultato di aggiornamento Node.js, come il problema ritagliata subito dopo l'aggiornamento.

avvio il mio servizio come questo:

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); 

Qualcuno ha qualche idea che cosa sta causando questo problema?

+0

provare altro browser e la cache chiaro. – deek

+0

Cosa significa 'curl -k -v https: // localhost: 3001 /' show? L'opzione '-k' dice' curl' per consentire comunque connessioni "non sicure". Questo, combinato con l'opzione '-v', dovrebbe aiutare a fornire maggiori informazioni sul certificato utilizzato dal server. In alternativa, puoi usare 'openssl s_client -connect localhost: 3001'. La parte interessante sarà determinare solo _quando_, durante l'handshake SSL, la connessione verrà chiusa. – Castaglia

risposta

2

Ho avuto lo stesso problema, provate questo:

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 
    }; 
Problemi correlati