Javascript的http服务器:ERR_CONNECTION_REFUSED
我最近试图安装一个SSL证书到我的服务器。 证书文件(privkey.pem,fullchain.pem)位于应用程序的根目录中。 当我运行下面的代码:
var express = require('express'); var app = express(); var helmet = require('helmet'); var db = require('./server/database.js'); var fs = require('fs'); var ssl = require('ssl-root-cas'); 'use strict'; var rootCas = require('ssl-root-cas/latest').create(); // default for all https requests // (whether using https directly, request, or another module) require('https').globalAgent.options.ca = rootCas; app.use(helmet()); var options = { key : fs.readFileSync('privkey.pem', 'ascii'), cert : fs.readFileSync('fullchain.pem', 'ascii') } app.get('/', function(req, res) { res.sendFile(__dirname + '/public/index.html'); }); app.use('/public', express.static(__dirname + '/public')); var serv = require('https').createServer(options, app);
服务器运行时没有错误。 “服务器正在侦听端口80”确认我添加了显示,证书似乎不会导致任何直接的问题。 但是,当我尝试连接到域(使用https://)时,Chrome响应ERR_CONNECTION_REFUSED。 当通过http连接到域时,Chrome会使用相同的消息进行响应。 我正在使用SocketIO,后来在代码中初始化,我没有发现我的问题和SocketIO的function之间的任何连接。 什么导致无法连接?
https请求通过端口443而不是80发送。以下代码可以正常工作:
var express = require('express'); var app = express(); var helmet = require('helmet'); var db = require('./server/database.js'); var fs = require('fs'); var ssl = require('ssl-root-cas'); 'use strict'; var rootCas = require('ssl-root-cas/latest').create(); // default for all https requests // (whether using https directly, request, or another module) require('https').globalAgent.options.ca = rootCas; app.use(helmet()); var options = { key : fs.readFileSync('privkey.pem', 'ascii'), cert : fs.readFileSync('fullchain.pem', 'ascii') } app.get('/', function(req, res) { res.sendFile(__dirname + '/public/index.html'); }); app.use('/public', express.static(__dirname + '/public')); var serv = require('https').createServer(options, app); //var serv = require('https').Server(app); //DEBUG ONLY
- index.jade没有出现在本地主机上
- Handlebars和ExpressJS的多种布局?
- passportjs LocalStrategy允许比默认的用户名和密码更多的参数吗?
- Keycloak – 授权validation失败。 原因:无效标记(错误的ISS)
- EJS语法错误,无法在MongoDb的浏览器中呈现logging
- 从redirect表示护照authentication空白页面
- req.locals与res.locals与res.data与req.data与快速中间件中的app.locals
- 我想在Express.js中呈现静态html,但仍然有app.get()方法的逻辑
- 如何在Socket.io/express-sessions中的授权事件上访问/保存会话数据?