Reputation: 363
I'm trying to use express
in conjunction with a node.js https
server, but I'm getting a warning when I connect.
My code is:
var WebSocketServer = require('ws').Server
, https = require('https')
, fs = require('fs')
, express = require('express')
, app = express();
app.use(express.static(__dirname + '/public'));
var options = {
rejectUnauthorized: false,
requestCert: true,
agent: false,
key: fs.readFileSync('private/key.pem'),
cert: fs.readFileSync('private/cert.pem')
};
var server = https.createServer(options, app);
server.listen(8888);
var MainServer = new WebSocketServer({server: server});
How do I fix this warning (and effectively the Identity not verified problem)?
Thanks!
Upvotes: 0
Views: 3489
Reputation: 6899
You need to purchase a SSL certificate from a certificate authority. A google search will reveal many venders with prices ranging significantly. If you are simply developing and it is not a production website you can find free certs or very cheap certs. The reason so many certs are expensive ( > 200 USD) is that the venders offer an insurance policy which guarantees the security of the certificate. Although if your cert is compromised and you request an insurance claim from the company, proving that the cert itself was due to fault is incredibly difficult and highly unlikely.
Upvotes: 1
Reputation: 509
That's a warning your browser gives. When you take the solution live, buy a certificate and associate with your domain(be exact - wildcard or root certificate) and the warning will go away, and a beatiful lock will come to show the world how safe your site is. :-)
Upvotes: 4