在Azure容器实例(ACI)中以HTTPS安全运行Seq服务
解决Azure容器实例(ACI)上Seq容器的HTTPS暴露问题
方案一:直接在ACI上配置HTTPS(无需额外网关)
这是最直接的实现方式,利用ACI原生的HTTPS支持,同时配置Seq容器启用HTTPS服务:
- 准备SSL证书:
优先使用Azure Key Vault存储的证书,若用自签名证书,需确保证书包含ACI的FQDN作为主题备用名称(SAN)。 - 部署ACI时指定HTTPS参数:
使用Azure CLI部署时,添加HTTPS相关配置:
注:通过Key Vault挂载证书时,ACI会自动将证书放到az container create \ --resource-group <你的资源组名> \ --name <seq容器实例名> \ --image datalust/seq:latest \ --ports 80 443 \ --ssl-certificate <Key Vault中的证书名> \ --ssl-certificate-key-vault <Key Vault名称> \ --environment-variables \ SEQ_HTTPS_PORT=443 \ SEQ_CERTIFICATEPATH=/mnt/ssl/cert.pfx \ SEQ_CERTIFICATEPASSWORD=<证书密码>/mnt/ssl路径,无需额外配置存储卷。 - 验证服务可用性:
部署完成后访问https://<ACI的FQDN>,确认Seq管理界面正常加载。
方案二:修复应用网关后端池异常问题
若必须通过应用网关暴露HTTPS,需排查并修正以下配置:
- 后端池目标配置:
确保后端池的目标是ACI的完整FQDN(可在ACI资源详情页获取),端口设置为Seq的HTTPS端口(默认443),而非HTTP端口80。 - 健康探测配置:
将健康探测协议改为HTTPS,路径设置为/api/health(Seq官方健康检查端点),端口匹配Seq的HTTPS端口。若Seq使用自签名证书,需将该证书导入应用网关的信任根证书列表,否则探测会因证书不被信任失败。 - 网络连通性检查:
若ACI部署在虚拟网络内,应用网关需处于同一VNet,或配置VNet对等互联/服务端点,确保网关能访问ACI的私有IP。 - 网关SSL设置:
前端HTTPS监听使用公网可信证书,后端池需开启“后端证书验证”(针对自签名证书场景),并导入Seq的证书到网关信任列表。
关键注意事项
- Seq容器必须主动启用HTTPS:必须通过环境变量指定证书路径、密码和HTTPS端口,否则容器仅监听HTTP端口,即使ACI暴露443端口也无法响应请求。
- 端口一致性:确保Seq配置的HTTPS端口与ACI对外暴露的443端口完全一致。
内容的提问来源于stack exchange,提问作者iman
相关产品推荐
相关产品推荐

