如何在 AWS 上使用 SSL 创建 node.js 应用程序?

Posted

技术标签:

【中文标题】如何在 AWS 上使用 SSL 创建 node.js 应用程序?【英文标题】:How do I create a node.js application with SSL on AWS? 【发布时间】:2017-02-22 08:59:54 【问题描述】:

我需要在 AWS 上创建一个带有 SSL 的 node.js 应用程序以支持 PayPal 付款。我不确定如何配置和配置什么。我目前正在运行应用程序,但纯粹在 HTTP(不是 HTTPS)上运行。请提供有关最佳配置方式的选项。 我在 Window Server 上 - 这有两个部分 1) 如何配置 AWS? 2) 如何配置节点?

【问题讨论】:

【参考方案1】:

如果您在 EC2 实例上运行节点,我会使用带有 SSL 证书的 ELB。

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html

ELB 和 Amazon Cert Manger 让这个愚蠢的事情变得容易。

另一种选择是使用 Elastic Beanstalk。更多的交钥匙和易于设置。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.html

【讨论】:

【参考方案2】:

只需生成您的 SSL 证书并在 nginx conf 中设置它

示例: 您的应用程序正在 localhost:3000 上运行 您的域是 test.com

在 /etc/nginx/sites-enables/ 中添加配置,例如 conf.conf 包含以下内容

#redirect http to https
server 
        server_name test.com;
        listen 80;
        return 301 https://$server_name$request_uri;

server

    listen 443 ssl;
    server_name            test.com;
    ssl_certificate        YOUR_CRT_FILE.crt;
    ssl_certificate_key    YOUR_CRT_KEY.key;
    ssl_protocols          TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers            HIGH:!aNULL:!MD5;

    location / 
        proxy_pass http://localhost:3000;
    

nginx 现在将管理您的 https 请求

使用以下 cmd 测试配置:

$ sudo nginx -t

如果成功重新加载nginx:

$ sudo nginx -s reload

【讨论】:

以上是关于如何在 AWS 上使用 SSL 创建 node.js 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何从本地使用 SSL 加密连接到 AWS RDS?

如何启用 (https) SSL 证书 AWS EC2 托管站点

如何在 AWS EC2 和 ELB 上使用 Godaddy 注册的域实现 SSL 证书

无法选择自定义 SSL 证书(存储在 AWS IAM 中)

如何在aws中为cname设置ssl证书?

尝试从 AWS Lambda 但不是桌面访问 AWS Device Farm 时出现 SSL 证书错误