我正在使用以下代码在我的网站上安装SSL证书:
const express = require('express');
const path = require('path');
const app = express();
const fs= require('fs');
let privateKey = fs.readFileSync('certificate/x.key', 'utf8');
let ca = fs.readFileSync('certificate/x.crt', 'utf8');
let certificate = fs.readFileSync('certificate/x.crt', 'utf8');
let credentials = { key: privateKey, cert: certificate, ca: ca };
const http = require('http');
const https = require('https');
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
let httpsServer = https.createServer(credentials, app);
httpsServer.listen(443);这是一个react应用程序,我通过Node.js为它提供服务。
当我在Chrome或Microsoft Edge上打开网站时,它显示连接是安全的、加密的和有效的,但当我在firefox上打开它时,它显示连接不安全。


可能的问题是什么?
发布于 2019-02-07 05:43:38
如果您的中间证书包含多个块,则应将它们拆分为不同的文件,并在ca参数中以数组的形式逐个发送它们,如下所示:
let credentials = { key: privateKey, cert: certificate, ca: [
fs.readFileSync('certificate/x_1.pem', 'utf8'),
fs.readFileSync('certificate/x_2.pem', 'utf8'),
fs.readFileSync('certificate/x_3.pem', 'utf8'),
[...]
] };发布于 2019-02-01 16:39:02
如果您的证书在其他浏览器上看起来是正确的,而只是没有出现在Firefox中,那么几乎可以肯定的是,Firefox仍然显示缓存的证书。
只需清除Firefox的SSL状态,您就可以开始工作了:
Active Logins复选框。
发布于 2019-02-07 18:23:54
我建议你输入你的站点地址here并测试它的问题。
如果您看到,例如,完整链未提供问题,您可以创建所有证书的完整链,并将其PEM编码到单个证书文件中,然后将其作为证书文件提供。你甚至可以在测试结束后直接在那里下载这个完整的链接。
https://stackoverflow.com/questions/54342573
复制相似问题