如何将SSL证书用于在同一服务器实例中运行的两个端口

时间:2018-05-05 15:35:49

标签: ubuntu ssl nginx amazon-ec2 openssl

您好我正在使用Nginx服务器在AWS EC2服务中运行ubuntu实例。我在端口5000上运行React应用程序,在端口8080上运行节点服务器。我已经使用openssl证书为我的域添加了SSL for HTTPS。但是在运行两台服务器后,网站无法正常工作并显示此消息

enter image description here

据我了解,这是因为/api流量通过8080并且没有SSL证书。

我的/etc/nginx/sites-available/default文件就像这样

server {
    server_name projectmatch.me www.projectmatch.me;
    location / {
        proxy_pass http://127.0.0.1:5000;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_redirect off;
     }


      listen 443 ssl;
     # managed by Certbot
      ssl_certificate /etc/letsencrypt/live/projectmatch.me/fullchain.pem; # managed by Certbot
      ssl_certificate_key /etc/letsencrypt/live/projectmatch.me/privkey.pem; # managed by Certbot
      include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
      ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

  }

  server {
    if ($host = www.projectmatch.me) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = projectmatch.me) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;

    server_name projectmatch.me www.projectmatch.me;
    return 404; # managed by Certbot


}

请告诉我如何将SSL添加到我的React和Api端口。

1 个答案:

答案 0 :(得分:0)

您可以为listen块添加第二个server指令,用于您想要侦听的任何其他端口(使用或不使用ssl)。

server {
    listen 443 ssl;
    listen 8443 ssl;
    listen 80; # no ssl
}