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

标签 ubuntu ssl nginx amazon-ec2 openssl

您好,我正在使用 Nginx 服务器在 AWS EC2 服务中运行 ubuntu 实例。我有 React 应用程序在端口 5000 上运行,节点服务器在端口 8080 上运行。我已经使用 openssl 证书为我的域添加了 SSL 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 端口。

最佳答案

您可以简单地为 server block 添加第二个 listen 指令,用于您想要监听的任何其他端口(有或没有 ssl)。

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

关于ubuntu - 如何将 SSL 证书用于在同一服务器实例中运行的两个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50191163/

相关文章:

linux - 有没有办法从 linux 的系统日志中检索消息的严重级别?

java - 即使我已经添加了证书,如何修复 javax.net.ssl.SSLHandshakeException

node.js - Openshift 重定向到 Node 上的 https

linux - 如何在 Ubuntu 中为 mysqld 传递 "--external-locking"

java - ubuntu 找不到系统 Java 编译器。确保您已经安装了 JDK(不仅仅是 JRE)a

无法通过 http 访问 nginx CentOS 7

node.js - 当尝试作为反向代理连接到 Node 应用程序时,Nginx 连接被拒绝

nginx 在单独的服务器上 proxy_pass 到多个 Rails 应用程序,在不同的盒子中独立的乘客上有子 URI

ubuntu - nginx 不匹配位置(我认为)

ssl - 别名为 mykey 的 SAML-Key 没有私钥