Node.js http服务器中的NodeJS err ssl协议错误
我有一个http服务器,我不知道为什么它不运行 index.js文件:Node.js http服务器中的NodeJS err ssl协议错误,node.js,express,ssl,Node.js,Express,Ssl,我有一个http服务器,我不知道为什么它不运行 index.js文件: const express = require("express"); const app = (global.app = express()); const helmet = require("helmet"); const server = require("http").createServer(app); const io = (global.io = re
const express = require("express");
const app = (global.app = express());
const helmet = require("helmet");
const server = require("http").createServer(app);
const io = (global.io = require("socket.io")(server));
const config = require("./config.js");
//Middleware
app.use(helmet());
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
require("./socket")(io);
require("./router")(app);
server.listen(config.PORT, () => console.log(`Listen on port ${config.PORT}...`));
路由器文件:
const express = require("express");
const path = require("path");
module.exports = (app) => {
app.use(express.static(path.join(__dirname, "/../public/main")));
app.use("/board/:id", express.static(path.join(__dirname, "/../public/paint")));
app.get("*", (req, res) => {
res.status(404).sendFile(path.join(__dirname, "/../", "/public/404/404.html"));
});
};
Chrome显示错误:
GET https://10.0.1.55:5000/board/jsdbf/style.css net::ERR_SSL_PROTOCOL_ERROR
GET https://10.0.1.55:5000/socket.io/socket.io.js net::ERR_SSL_PROTOCOL_ERROR
适用于所有js、css和IMG。index.html被正确加载。我不是内容安全策略方面的100%专家,但我注意到了一些事情 如前所述,使用头盔时会出现
net::ERR\u SSL\u PROTOCOL\u ERROR
问题(app.use(helmet())
)。我不认为解决方案是根本不使用头盔,因为它为应用程序提供了安全性
在对所有头盔(contentSecurityPolicy、dnsPrefetchControl、expectCt、frameguard等)执行暴力后,我发现contentSecurityPolicy
正在创建错误。文档中说,升级不安全请求指令指示用户代理将站点的所有不安全URL(通过HTTP提供的URL)视为已被安全URL(通过HTTPS提供的URL)取代
所以为了解决这个问题,同时使用头盔,我改变了这一点:
app.use( helmet() );
为此:
app.use( helmet() );
app.use(helmet.contentSecurityPolicy({
directives: {
...defaultDirectives,
},
}));
这样,我仍然使用头盔,但CSP指令并没有强制HTPP使用HTTPS。请记住,应在生产环境中设置升级不安全请求指令。我不是内容安全策略方面的100%专家,但我注意到了一些问题 如前所述,使用头盔时会出现
net::ERR\u SSL\u PROTOCOL\u ERROR
问题(app.use(helmet())
)。我不认为解决方案是根本不使用头盔,因为它为应用程序提供了安全性
在对所有头盔(contentSecurityPolicy、dnsPrefetchControl、expectCt、frameguard等)执行暴力后,我发现contentSecurityPolicy
正在创建错误。文档中说,升级不安全请求指令指示用户代理将站点的所有不安全URL(通过HTTP提供的URL)视为已被安全URL(通过HTTPS提供的URL)取代
所以为了解决这个问题,同时使用头盔,我改变了这一点:
app.use( helmet() );
为此:
app.use( helmet() );
app.use(helmet.contentSecurityPolicy({
directives: {
...defaultDirectives,
},
}));
这样,我仍然使用头盔,但CSP指令并没有强制HTPP使用HTTPS。请记住,应在生产环境中设置升级不安全请求指令。您试图使用HTTPS访问服务器,但服务器上未配置HTTPS。使用
http://...
而不是https://...
访问服务器。昨天相同的代码工作正常:/Firefox的日志:http:Content Security Policy:无法处理未知指令“script src attr”内容安全策略:页面设置阻止加载“内联”资源(“script src”)。无法为源为“”的“脚本”加载fingerprint-protection.js:286:17。10.0.1.55:5000:31:1未能加载源为“”的“脚本”。10.0.1.55:5000:32:1内容安全策略:页面设置阻止加载“内联”资源(“脚本src”)。fingerprint-protection.js:286:17上两条评论中的错误与SSL无关,因此与您的原始问题无关代码>强制在HttpSy中调用您试图使用HTTPS访问服务器,但服务器上未配置HTTPS。使用http://...
而不是https://...
访问服务器。昨天相同的代码工作正常:/Firefox的日志:http:Content Security Policy:无法处理未知指令“script src attr”内容安全策略:页面设置阻止加载“内联”资源(“script src”)。无法为源为“”的“脚本”加载fingerprint-protection.js:286:17。10.0.1.55:5000:31:1未能加载源为“”的“脚本”。10.0.1.55:5000:32:1内容安全策略:页面设置阻止加载“内联”资源(“脚本src”)。fingerprint-protection.js:286:17上两条评论中的错误与SSL无关,因此与您的原始问题无关代码>强制使用HTTPS进行调用