我正在使用 NodeJS 托管 HTTPS Express 服务器。我的服务器配置如下:
var options = {
key: fs.readFileSync('domain_com.key'),
cert: fs.readFileSync('domain_com-bundle.crt')
}
https.createServer(options, app).listen(8082, function() {...} );
我遵循了此网站连接 .crt 和 .ca-bundle 文件。
更新:更新了我的代码,但仍然出现同样的错误
var options = {
key: fs.readFileSync('domain_com.key'),
cert: fs.readFileSync('domain_com.crt'),
ca: fs.readFileSync('domain_com.ca-bundle')
}
https.createServer(options, app).listen(8082, function() {...} );
对于此代码,我没有按照上一个链接上的说明进行操作,而是将每个文件单独包含到 NodeJS 中的 https 模块中
现在,当我尝试使用 Android 移动版 Chrome 56 访问我的网站时,出现了问题。使用桌面版 Chrome 时,一切正常。
我运行了 SSL 分析器并返回了以下结果:证书链断裂
简单地说,我可能已经尝试了所有可能的密钥/证书/捆绑包组合来尝试让它工作,但 chrome 仍然给出 ERR_CERT_AUTHORITY_INVALID。
我并不完全确定我在做什么,因为这是我第一次设置 SSL 证书,所以如果您需要任何其他信息,请告诉我。
答案1
就我的具体情况而言,我使用 Namecheap.com 作为我的注册商,并使用 Comodo PositiveSSL 证书。为了解决证书无法在 Chrome 56 for Android 上运行的问题,我附加了这文件到 Namecheap 提供的 .crt 文件末尾。