【问题标题】:Setting up SSL on Nginx on AWS Ubuntu instance在 AWS Ubuntu 实例上的 Nginx 上设置 SSL
【发布时间】:2018-05-08 12:02:31
【问题描述】:

我目前有一个 NodeJS (Koa.js) / Angular4+ 应用程序位于运行 Linux 的 AWS 实例上,我需要对其进行配置以使用 SSL。我已经在线学习了一些教程,生成了 SSL 证书并尝试使其正常工作,但到目前为止我还没有运气。

让我告诉你我到目前为止所做的事情:

我已生成 SSL 证书,它位于实例上 /home/ubuntu 目录中名为 ssl-bundle.crt 的文件中。我的钥匙也在同一个目录中。

我在 Nginx 上为应用程序配置了我的服务器块,如下所示(/etc/nginx/sites-available/dashboard.conf):

server {
        listen 80;
        return 301 https://$host$request_uri;
}

server {
        listen 443;

        ssl_certificate /home/ubuntu/ssl-bundle.crt;
        ssl_certificate_key /home/ubuntu/dashboard.d*****d.key;

        ssl on;
        ssl_session_cache  builtin:1000  shared:SSL:10m;
        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        ssl_prefer_server_ciphers on;

        access_log            /var/log/nginx/d*****d.access.log;

        location / {
               proxy_set_header Host $host;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_pass http://localhost:4000;
               proxy_set_header        X-Forwarded-Proto $scheme;
        }
}

Node 应用程序在端口 4000 上运行,因此当有人访问该 url 时,我有一个 proxy_pass 到该地址。当我不使用 SSL 时,应用程序在访问该 URL 时运行良好,但是当我尝试使用上述服务器块代码尝试访问该 URL 时会导致超时。谁能帮我看看我的配置有什么问题?

谢谢

【问题讨论】:

    标签: linux amazon-web-services ssl nginx


    【解决方案1】:

    原来这不是 Nginx 问题,而是 AWS 安全组的问题。我没有在设置中允许 443 作为传入端口。一旦我这样做了,它就工作得很好。希望这对将来使用 AWS 的任何人有所帮助。

    【讨论】:

      【解决方案2】:

      我们已经在我们的几个 API 服务器上使用了letsencrypt,我发现它的设置非常简单。 Please see this tutorial for a tested step by step.

      【讨论】:

        最近更新 更多