You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Container Apps中OpenSearch安全插件HTTPS/HTTP不匹配问题咨询

关于Azure Container Apps部署OpenSearch安全插件的问题

架构

API / WebJob (HTTPS)
        ↓
Azure Container Apps ingress (HTTPS externally)
        ↓ (internal hop becomes HTTP)
OpenSearch container (:9200)

问题

启用OpenSearch安全插件后,服务要求通过HTTPS通信,但Azure Container Apps入口在边缘终止TLS,内部以HTTP转发流量,流量流程如下:

HTTPS client → ACA ingress → HTTP → OpenSearch

OpenSearch会拒绝HTTP请求,引发连接失败。

已尝试操作

  • 配置管理员密码并启用OpenSearch安全插件
  • 对外暴露ACA入口(外部HTTPS可正常工作)
  • 尝试从App Service/WebJob调用OpenSearch
  • 确认ACA内部流量仅为HTTP

咨询问题

  1. 是否可在Azure Container Apps中将内部HTTP流量转换为HTTPS后再转发至容器?
  2. 能否配置ACA实现流量重新加密(HTTPS透传/重加密)?
  3. 是否有受支持的方案可在ACA中运行OpenSearch安全插件且不公开暴露?
  4. 从App Service+WebJob安全内部访问OpenSearch的推荐架构是什么?

目标

  • OpenSearch不对外公开访问
  • 仅允许App Service+WebJob访问
  • 启用安全插件(需身份验证)
  • 无HTTP暴露相关问题

解决方案建议

针对问题1和2:ACA内部流量转HTTPS/重加密

目前Azure Container Apps默认 ingress 不支持直接将内部HTTP流量转换为HTTPS转发到容器,也没有原生重加密配置选项,但可以通过以下两种方式解决:

  1. OpenSearch容器侧同时启用HTTP和HTTPS

    • 修改OpenSearch的opensearch.yml配置,允许HTTP访问(仅限ACA内部流量),同时保留HTTPS用于安全验证。配置示例:
      opensearch.security.ssl.http.enabled: true
      opensearch.security.allow_unsafe_democertificates: true # 测试用,生产环境建议使用自定义证书
      opensearch.security.disabled: false
      http.enabled: true
      
    • 注意:需确保OpenSearch的HTTP端口仅在ACA内部网络可见,不对外暴露。
  2. ACA内部部署反向代理

    • 在同一ACA环境中部署轻量反向代理(如Nginx),配置它接收ACA的HTTP流量,再以HTTPS转发到OpenSearch容器。
    • Nginx关键配置示例:
      server {
          listen 80;
          location / {
              proxy_pass https://opensearch-container:9200;
              proxy_ssl_verify off; # 自签名证书场景下使用,生产环境建议配置证书验证
              proxy_set_header Host $host;
          }
      }
      
    • 让App Service/WebJob的请求指向该代理容器,而非直接访问OpenSearch。

针对问题3:不公开暴露OpenSearch的受支持方案

  • 将OpenSearch的ACA ingress设置为内部访问,仅允许ACA环境内部可见,不启用外部访问权限。
  • 结合Azure虚拟网络(VNet)集成:将ACA环境部署到自定义VNet,同时将App Service加入同一VNet或通过VNet peering连通,实现纯内部网络访问。
  • 启用OpenSearch安全插件的身份验证机制(如用户名密码、API密钥),确保只有授权的App Service/WebJob能发起访问。

针对问题4:App Service+WebJob安全访问OpenSearch的推荐架构

App Service/WebJob (VNet集成)
        ↓ (内部VNet流量)
Azure Container Apps (VNet集成,内部ingress)
        ↓ (HTTPS)
OpenSearch容器 (启用安全插件+HTTPS)
  1. VNet集成:将ACA环境和App Service部署到同一Azure VNet,或通过VNet peering连接,确保流量在内部网络传输,不经过公网。
  2. 内部Ingress:OpenSearch的ACA ingress设置为internal,彻底禁止外部访问。
  3. 流量加密:要么在ACA内部部署反向代理,将App Service的HTTP请求转换为HTTPS转发到OpenSearch;要么直接让App Service以HTTPS访问OpenSearch容器(需提前配置OpenSearch的SSL证书)。
  4. 身份验证:在App Service/WebJob中配置OpenSearch安全插件的API密钥或用户名密码,实现身份校验。

内容的提问来源于stack exchange,提问作者Arul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:32:58