我目前在运行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会导致超时。任何人都可以帮助我,或者看看我的配置有什么问题吗?
由于
答案 0 :(得分:1)
原来这不是Nginx问题,而是AWS安全组的问题。我没有允许443作为设置中的传入端口。一旦我这样做,它工作得很好。希望这有助于将来使用AWS。
答案 1 :(得分:0)
我们在几个API服务器上使用了letsencrypt,我发现它非常简单。 Please see this tutorial for a tested step by step