2013-04-07 15 views
5

nodejs wersja: 0.8.6
Stworzyłem plik ssl csr przy użyciu przy użyciu OpenSSL za pomocą następującego polecenia: openssl req -nodes -newkey rsa: 2048 -keyout myserver.key wymeldowanie myserver.csrhowto stworzyć serwer nodejs ssl?

  • Treść csr została wysłana do mojego dostawcy SSL, certyfikat został odesłany.

teraz chciałem stworzyć SSL Secure Server:

var fs = require("fs"); 
var https = require('https'); 
var credentials = { 
      key: fs.readFileSync(options.base_project_folder + 'privatekey.pem'), 
      cert: fs.readFileSync(options.base_project_folder + 'certificate.pem') 
}; 
var server = https.createServer(credentials, app); 
server.listen(port, address, function() { 
    var addr = this.address(); 
    console.log('listening on %s:%d', addr.address, addr.port); 
}); 

serwer działa, ale pojawia się: "Błąd połączenia SSL"

próbuje sprawdzić problemu zrobiłem: OpenSSL s_client -connect my_dns: 443 // my_dns punkty do mojego serwera nodejs oczywiście

WYNIK: podłączony (00000003) 139813382997664: error: 140790E5: Procedury SSL: SSL23_WRITE: ssl niewydolność handshake: s23_lib.c: 177:
nie świadectwo wzajemnej dostępny
Bez certyfikatu klient nazwy CA wysłany
SSL handshake przeczytał 0 bajtów i pisemne 226 bajtów
Nowy, (brak), Cipher jest (brak)
Bezpieczne Renegocjacja nie jest obsługiwany
kompresji: Brak
rozszerzeń: BRAK

może ktoś mi pomóc? zgubiłem drogę w ciemności SSL :(

+0

Kod serwera piszesz jest niekompletna. Albo nie opublikowałeś reszty (jeśli tak, proszę to również opublikować), albo po prostu brakuje ci istotnych elementów tworzenia rzeczywistego serwera HTTPS w węźle. – robertklep

+0

Edytowałem kod, mam nadzieję, że pomoże to znaleźć mój problem. – IdanHen

+0

I 'port' jest równy' 443', prawda? – robertklep

Odpowiedz

7

spróbuj dodać CA tak:

var credentials = { 
    key: fs.readFileSync(options.base_project_folder + 'privatekey.pem'), 
    cert: fs.readFileSync(options.base_project_folder + 'certificate.pem'), 
    ca: fs.readFileSync(/path/to/CA/cert) 
}; 

The docs say że argument opcji jest podobna do tls.createServer

+0

co to jest plik ca? jaka jest treść tego? próbowałem to znaleźć :( – IdanHen

+0

problem został znaleziony, moje pliki mają problem, a także potrzebuję ca :) – IdanHen

+1

http://www.benjiegillam.com/2012/06/node-dot-js-ssl- Łańcuch certyfikatów /, który znalazłem poprzez komentarz do linku w drugiej odpowiedzi, ma ważny punkt. W nowszych wersjach Węzła właściwość "ca" nie zajmie dołączonego pliku; jeśli masz więcej niż jeden certyfikat pośredni, musisz załadować je pojedynczo do tablicy i ustawić właściwość "ca" dla tej tablicy. – lawrence

1

Uważam, że musisz również określić certyfikat CA dla osoby podpisującej, ponieważ nie jest to samopodpisany certyfikat, powinieneś otrzymać pakiet z dowolnego miejsca, w którym uzyskałeś certyfikat.

A kilka linków, które powinny pomóc: http://qugstart.com/blog/node-js/install-comodo-positivessl-certificate-with-node-js/ http://www.gettingcirrius.com/2012/06/securing-nodejs-and-express-with-ssl.html

+0

+1 Zgadzam się, że problem może być bardzo brakuje certyfikatu CA. – talentedmrjones

Powiązane problemy