首页 文章

配置nginx以允许自定义端口上的HTTPS流量

提问于
浏览
0

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

  • 我在AWS中有一个VPC . 我在NAT(在我的情况下是一个Bastion服务器)实例上运行nginx,它接收HTTPS流量 .

  • 我在VPC中的app-instance是nginx转发请求的目的地 . 它有两个自定义子域,一个用于单向SSL身份验证,另一个用于双向SSL身份验证 .

  • 我在自定义端口而不是443上提供具有双向身份验证的URI . 在端口443上运行服务的URI使用单向SSL身份验证(服务器身份验证) .

  • 在我的nginx配置文件中,我监听此自定义端口,以便在SSL握手完成后将HTTPS请求重定向到app-instance上的同一自定义端口 . 但我观察到,在握手阶段之后,默认情况下,它被重定向到app-instance的端口443 .

  • 在设置HTTPS方案后,使用Java / Groovy中提供的HTTPBuilder对象发送HTTPS数据包 .

我正在使用的示例nginx配置在这里给出: `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; } }`

是否有任何nginx配置机制可以允许我将HTTPS请求发送到app-instance上的自定义端口?谢谢 .

1 回答

  • 0

    我发现了这个问题 . 这是我将HTTPS数据包发布到服务器的方式 . 在我的Groovy代码中,HTTPBuilder的uri.port字段设置为443而不是8000.将其替换为8000后,我的客户端可以发布到服务器 .

相关问题