我有一个在AWS EC2实例上运行的node Express应用程序。我可以使用运行服务器并连接到express apphttp://ec2-xx-xxx-xxx-242.us-west-2.compute.amazonaws.com
但是,当我使用https而不是http时,它不起作用,尽管在我的实例上打开了443端口。
有人能建议我如何在我的express应用程序上启用https吗。
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
//var httpsRedirect = require('express-https-redirect');
var index = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', index);
app.use('/users', users);
app.get('/hello', (req, res) => res.sendStatus(200));
app.get('/health-check', (req, res) => res.sendStatus(200));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
// *** HERE I am setting my App to listen on port 443
//app.listen(8080);
app.listen(8443);
module.exports = app;
以下是EC2实例的规则,其中端口443对所有流量开放。
我在AWS EC2Linux实例上启用了从端口443到8443的转发:
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
打开Linux防火墙以允许在端口443上进行连接:
sudo iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
以上答案肯定会让你达到目的。但AWS上的快速方法是使用应用程序负载平衡器,它负责设置和续订证书:https://aws.amazon.com/premiumsupport/knowledge-center/elb-redirect-http-to-https-using-alb/
这很容易,但需要一些时间来理解它通常是如何工作的。这应该是一个很好的开始:https://www.sitepoint.com/configuring-nginx-ssl-node-js/
简而言之:
我需要在具有自签名证书的Spring Boot 2.0.5应用程序上启用HTTPS,然而,到目前为止,我在配置中发现的所有内容都与设置一个名为的属性有关,但在这个Spring Boot版本上,该属性似乎不推荐使用...在Spring Boot应用程序上启用HTTPS还有其他方法吗?
我有以下情况。在我的微服务[MA]中,我希望在应用程序启动后或基于某个事件初始化/销毁一些bean。想象一下,还有另一个微服务[MB],它保存关于ContentStores的信息。在MA启动之后,我想向MB请求contentStore条目,基于此,我想根据需要创建这么多bean。可能会有一个事件触发storrecreated/storredeleted,在这种情况下,我需要销毁bean。 我目前不
编辑:根据Jim Rush的建议,我现在使用rc.local而不是init.d direclty来运行永远启动启动。 你知道为什么这不起作用吗?我在覆盆子皮B+上运行覆盆子。我已经运行了/etc/init.d kuuyi start和forever kicks并启动了该应用程序。只是启动机器后就不会发生了。 在这方面的任何帮助都是非常感谢的,我在这方面就像乳制品日后的旧奶酪布一样筋疲力尽。
我已经部署了play 2.2.1 helloworld(github链接)应用程序,但它不起作用。这是helloworld应用程序的链接。应用程序在本地运行良好。 程序文件 web: play run--http.port=$PORT$PLAY_OPTS 插件。sbt公司 对数电平:=电平。警告 解析器="类型安全存储库"位于"http://repo.typesafe.com/typesafe/r
当我试图在Tomcat8上运行该项目时,遇到了一个非常奇怪的错误: INFO o.s.web.context.contextLoader-根WebApplicationContext:初始化已启动。信息O.S.W.C.S.AnnotationConfigWebApplicationContext-刷新根WebApplicationContext:启动日期[Mon Jun 29 10:59:34 C
第一次使用JavaFX时,我试图使用窗口对其进行测试。 我正在Mojave 10.14.5的MacOS上使用Java 8(更新211)和Eclipse。 我正在从事这个项目: 我将我认为需要的所有JavaFX jar放入构建路径中(也许我错过了一些jar?)。 我正在尝试使用以下代码使用JavaFX打开一个窗口: 代码应该没问题,因为它适用于Windows和Linux。 当我运行它时,一个java