节点js + Nginx + Amazon Linux + SSL

萨加尔牧羊犬

我有一个在ssl的AWS linux服务器上运行的node js应用程序。我想将nginx实现为相同。我用谷歌搜索,并阅读到如果我在nginx中实现ssl,那么该节点应用程序将在http上运行。因此,我按照以下方式配置了nginx conf并使用普通的http服务器运行了node js应用程序:

listen              443 ssl;
server_name         myserver.com;
ssl_certificate     myserver.chained.crt;
ssl_certificate_key myserver.key;
ssl_client_certificate myserver.crt;
ssl_verify_client optional;
location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header VERIFIED $ssl_client_verify;
    proxy_set_header DN $ssl_client_s_dn;
    proxy_pass http://127.0.0.1:3000;
}

现在,该应用程序既可以在http上运行,也可以在https上运行。我希望实现nginx并通过ssl和该应用程序仅在https上运行。我的方法正确吗?我想念什么?

本杰明·凯泽(Benjamin Kaiser)

我看到您有在端口3000上运行的应用程序,您想要做的是使其仅在https上运行,是为了阻止对服务器的端口3000上的所有请求(使用aws中的防火墙或安全组规则),并且对于每个在端口80上请求时,您将需要将其重定向到https版本(端口443)。像这样的东西:

server {
    listen         80;
    server_name    my.domain.com;
    return         301 https://$server_name$request_uri;
}

我在关于serverfault的答案中找到了上述规则

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章