2013-04-07 33 views
5

nodejs phiên bản: 0.8.6
tôi đã tạo ra một tập tin ssl csr sử dụng sử dụng openssl với lệnh sau đây: openssl req -nodes -newkey rsa: 2048 -keyout myserver.key out myserver.csrhowto tạo máy chủ sj nodejs?

  • nội dung csr đã được gửi tới nhà cung cấp SSL của tôi, chứng chỉ đã được gửi lại.

bây giờ tôi muốn tạo ra một SSL an toàn 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); 
}); 

máy chủ đang chạy, nhưng tôi nhận được: "lỗi kết nối SSL"

cố gắng để kiểm tra các vấn đề tôi đã làm: openssl s_client -connect my_dns: 443 // my_dns trỏ đến máy chủ nodejs của tôi ofcourse

RESULT: CONNECTED (00000003) 139813382997664: lỗi: 140790E5: thói quen SSL: SSL23_WRITE: ssl handshake thất bại: s23_lib.c: 177:
không có chứng chỉ ngang hàng có sẵn
Không có tên CA giấy chứng nhận khách hàng gửi
SSL handshake đã đọc 0 byte và viết 226 byte
mới, (NONE), Cipher được (NONE)
an toàn đàm phán lại không được hỗ trợ
nén: NONE
Expansion: NONE

bất cứ ai có thể giúp tôi? Tôi bị lạc đường trong bóng tối SSL: (

+0

Mã máy chủ bạn đăng chưa hoàn tất. Hoặc bạn đã không đăng phần còn lại (nếu có, vui lòng đăng nó), hoặc bạn chỉ thiếu các phần thiết yếu của việc tạo một máy chủ HTTPS thực trong Node. – robertklep

+0

tôi đã chỉnh sửa mã, hy vọng điều này sẽ giúp tìm ra vấn đề của tôi. – IdanHen

+0

Và 'cổng' bằng '443', phải không? – robertklep

Trả lời

7

thử thêm CA như vậy:

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 rằng đối số tùy chọn tương tự như tls.createServer

+0

tệp ca là gì? nội dung của nó là gì? tôi đã cố gắng để tìm ra: ( – IdanHen

+0

vấn đề đã được tìm thấy, các tập tin của tôi có một vấn đề, và tôi cũng cần ca :) – IdanHen

+1

http://www.benjiegillam.com/2012/06/node-dot-js-ssl- chứng chỉ-chuỗi /, mà tôi tìm thấy thông qua một bình luận trên một liên kết trong câu trả lời khác, có một điểm quan trọng. Trong các phiên bản mới hơn của Node, thuộc tính "ca" sẽ không có tệp được nhóm; nếu bạn có nhiều hơn một chứng chỉ trung gian, bạn phải tải chúng riêng lẻ vào một mảng và đặt thuộc tính "ca" thành mảng đó. – lawrence

1

Tôi tin rằng bạn cũng cần phải chỉ định chứng chỉ CA cho người ký. Vì đây không phải là chứng chỉ tự ký nên bạn đã nhận được gói từ bất cứ nơi nào bạn có chứng chỉ.

Một vài liên kết mà nên giúp đỡ: 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 Tôi đồng ý rằng sự cố có thể rất thiếu chứng chỉ CA. – talentedmrjones

Các vấn đề liên quan