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

.NET环境下Docker容器间SSL连接被拒绝问题排查

问题排查与解决方案

核心问题

同一Docker Compose服务组内,FrontEnd容器可Ping通DataLayer容器,但通过RestSharp调用https://DataLayer:8081时出现Connection refused (datalayer:8081)错误。

排查思路与解决办法

1. 检查DataLayer的Kestrel监听地址

ASP.NET Core服务默认可能仅绑定localhost(127.0.0.1),导致仅容器内部可访问,同组其他容器无法连接。

  • 打开DataLayer的appsettings.json,确认Kestrel配置的监听地址为*或0.0.0.0:
    "Kestrel": {
      "Endpoints": {
        "Https": {
          "Url": "https://*:8081",
          "Certificate": {
            "Path": "/app/certs/DataLayer.crt",
            "KeyPath": "/app/certs/DataLayer.key"
          }
        }
      }
    }
    
  • 启动DataLayer容器后,查看日志是否包含Now listening on: https://[::]:8081,若显示https://127.0.0.1:8081则说明监听地址错误,需修改为*。

2. 验证容器内网络连通性(排除RestSharp代码问题)

在FrontEnd容器内执行curl命令直接测试DataLayer服务:

# 进入FrontEnd容器
docker exec -it <front-end-container-id> bash
# 忽略证书验证测试HTTPS连接
curl -k https://DataLayer:8081
  • 若curl也返回连接拒绝,说明问题出在DataLayer服务或容器网络配置;
  • 若curl成功,则排查RestSharp的代码配置:
    • 确认BaseUrl拼写无误(端口、协议、服务名);
    • 检查是否有自定义代理、超时设置干扰连接;
    • 尝试显式设置RestSharp的Client配置,临时关闭证书验证以排除信任问题:
      var client = new RestClient("https://DataLayer:8081")
      {
        RemoteCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true
      };
      

3. 检查Docker Compose网络配置

  • 确认两个服务处于同一Docker网络:默认情况下Docker Compose会为所有服务创建并加入默认网络,若手动指定了网络,需确保FrontEnd和DataLayer都在同一个network块中;
  • 检查服务名称大小写:Docker DNS解析大小写不敏感,但部分配置可能严格匹配,确认docker-compose.yml中DataLayer的服务名与调用URL一致。

4. 检查DataLayer容器的端口与服务状态

  • 查看DataLayer容器内8081端口是否被服务占用:
    docker exec -it <data-layer-container-id> netstat -tulpn | grep 8081
    
  • 查看DataLayer容器日志,确认服务无启动异常:
    docker logs <data-layer-container-id>
    
    重点检查是否有证书加载失败、端口绑定失败等错误信息。

5. 排查容器内防火墙限制

若Debian容器启用了ufw防火墙,需确认8081端口允许入站:

# 进入DataLayer容器
docker exec -it <data-layer-container-id> bash
# 查看防火墙状态
sudo ufw status
# 若开启,允许8081端口
sudo ufw allow 8081/tcp

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:31:17