Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

howto create nodejs ssl server?

howto create nodejs ssl server?

Problem

nodejs version : 0.8.6
i have created a ssl csr file using using openssl with the following command: openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out myserver.csr

  • csr content was sent to my SSL provider , certificate was sent back.

now i wanted to create a 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);
});

server is running , but i get : "SSL connection error"

trying to check the problem i did : openssl s_client -connect my_dns:443 // my_dns points to my nodejs server ofcourse

RESULT: CONNECTED(00000003) 139813382997664:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
no peer certificate available
No client certificate CA names sent
SSL handshake has read 0 bytes and written 226 bytes
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE

can anyone help me ? i lost my way in the SSL darkness :(

Problem courtesy of: IdanHen

Solution

Try adding the CA like so:

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 that the options argument is similar to tls.createServer

Solution courtesy of: talentedmrjones

Discussion

View additional discussion.



This post first appeared on Node.js Recipes, please read the originial post: here

Share the post

howto create nodejs ssl server?

×

Subscribe to Node.js Recipes

Get updates delivered right to your inbox!

Thank you for your subscription

×