在AWS Ubuntu实例

时间:2017-11-24 12:58:19

标签: linux amazon-web-services ssl nginx

我目前在运行Linux的AWS实例上有一个NodeJS(Koa.js)/ Angular4 +应用程序,我需要将其配置为使用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会导致超时。任何人都可以帮助我,或者看看我的配置有什么问题吗?

由于

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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