How to fix missing an Intermediate/chain certifica

2020-02-24 01:02发布

问题:

I have installed nodejs and ssl on my sever

and my app.js code

var sslOptions = {
  key: fs.readFileSync('/etc/ssl/private/private.key'),
  cert: fs.readFileSync('/etc/ssl/certs/cert.com.crt'),
  requestCert: true,
  ca: fs.readFileSync('/etc/ssl/certs/ca.crt'),
  rejectUnauthorized: false 
};

var secureServer = https.createServer(sslOptions,app).listen(443, function(){
   console.log("Express server listening on port ");

});

Now when i check

https://www.sslshopper.com/

it is giving me error

The certificate is not trusted in all web browsers. You may need to install an Intermediate/chain certificate to link it to a trusted root certificate. Learn more about this error. You can fix this by following Comodo's Certificate Installation Instructions for your server platform (use these instructions for InstantSSL). Pay attention to the parts about Intermediate certificates.

Any idea ?

How to fix this

回答1:

Comment out the line where you add the ca bundle. Copy all the text from ca.crt and paste them in cert.com.crt(don't replace the previous cert, just paste under it). It should work fine now.

var sslOptions = {
  key: fs.readFileSync('/etc/ssl/private/private.key'),
  cert: fs.readFileSync('/etc/ssl/certs/cert.com.crt'),
  requestCert: true,
  //ca: fs.readFileSync('/etc/ssl/certs/ca.crt'),
  rejectUnauthorized: false 
};

var secureServer = https.createServer(sslOptions,app).listen(443, function(){
   console.log("Express server listening on port ");

});


标签: node.js ssl