我在服务器上安装了nodejs和ssl
和我的app.js代码
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 ");
});
现在我检查
它给了我错误
所有网络浏览器都不信任该证书。你可能需要 安装中间/链证书以将其链接到受信任的根 证书。详细了解此错误。你可以解决这个问题 遵循Comodo的证书安装说明 服务器平台(使用InstantSSL的这些说明)。请注意 关于中级证书的部分。
有什么想法吗?
如何解决此问题
答案 0 :(得分:19)
注释掉添加ca包的行。复制ca.crt中的所有文本并将其粘贴到cert.com.crt中(不要替换以前的证书,只需在其下粘贴)。它现在应该可以正常工作。
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 ");
});