Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 配置nginx以允许自定义端口上的HTTPS通信_Amazon Web Services_Nginx_Nat - Fatal编程技术网

Amazon web services 配置nginx以允许自定义端口上的HTTPS通信

Amazon web services 配置nginx以允许自定义端口上的HTTPS通信,amazon-web-services,nginx,nat,Amazon Web Services,Nginx,Nat,我对将nginx配置为将在自定义端口上接收的HTTPS流量转发到目标url的相同自定义端口号有疑问。我的情况如下 我在AWS有一个VPC。我在NAT(在我的例子中是Bastion服务器)实例上运行nginx,该实例接收HTTPS流量 VPC中的My app instance是nginx转发请求的目的地。它有两个自定义子域,一个用于单向SSL身份验证,另一个用于双向SSL身份验证 我在自定义端口上提供具有双向身份验证的URI,而不是443。在端口443上运行服务的URI使用单向SSL身份验证(服务

我对将nginx配置为将在自定义端口上接收的HTTPS流量转发到目标url的相同自定义端口号有疑问。我的情况如下

  • 我在AWS有一个VPC。我在NAT(在我的例子中是Bastion服务器)实例上运行nginx,该实例接收HTTPS流量
  • VPC中的My app instance是nginx转发请求的目的地。它有两个自定义子域,一个用于单向SSL身份验证,另一个用于双向SSL身份验证
  • 我在自定义端口上提供具有双向身份验证的URI,而不是443。在端口443上运行服务的URI使用单向SSL身份验证(服务器身份验证)
  • 在我的nginx配置文件中,在SSL握手完成后,我在这个自定义端口上侦听,以将HTTPS请求重定向到应用实例上的同一个自定义端口。但我观察到,在握手阶段之后,默认情况下,它被重定向到应用程序实例的端口443
  • HTTPS数据包是在设置HTTPS方案后,使用Java/Groovy中可用的HTTPBuilder对象发送的
  • 我正在使用的nginx配置示例如下:


    是否有任何nginx配置机制允许我将HTTPS请求发送到应用程序实例上的自定义端口?谢谢。

    我发现了问题。这就是我向服务器发送HTTPS数据包的方式。在我的Groovy代码中,HTTPBuilder的uri.port字段被设置为443而不是8000。在用8000替换之后,我的客户机可以发布到服务器。

    您是如何在groovy代码中使用客户机证书的?
    server {
     listen 8000;
     server_name myserver.com;
     ssl on;
        ssl_certificate      /path/to/server/cert;
        ssl_certificate_key  /path/to/server/key;
        ssl_client_certificate /path/to/client/cert;
        ssl_verify_client on;
     #https requests to this URI gets redirected to port 443 by default
     location /customUri1 {
            # switch off logging
            access_log off;
            proxy_pass http://app-instance-ip:8080;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
      }
    }
    server {
     listen 443;
     server_name myserver.com;
     ssl on;
        ssl_certificate      /path/to/server/cert;
        ssl_certificate_key  /path/to/server/key;
     location /customUri2 {
            # switch off logging
            access_log off;
            proxy_pass http://app-instance-ip:8080;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto http;      
      }
    }