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

Docker部署的站点HTTPS访问报ERR_CONNECTION_REFUSED如何解决?

问题排查与解决方案

1. 检查Nginx容器运行状态与日志

先确认Nginx容器是否正常运行:

docker ps -a | grep reverseproxy

若容器处于运行中状态,查看运行日志定位错误:

docker logs reverseproxy

重点排查是否存在证书缺失、配置语法错误、文件找不到类的报错提示。

2. 验证SSL证书是否生成成功

先查看certbot容器的运行日志,确认证书生成流程是否正常完成:

docker logs certbot

如果日志提示证书生成失败,优先解决域名解析、ACME验证拦截类问题,保证证书正常生成。你也可以直接查看证书存储卷下是否存在对应文件:

# 查看宿主机上证书卷的存储内容
ls /var/lib/docker/volumes/example_certbot-etc/_data/live/example.com/

确认该路径下存在fullchain.pem和privkey.pem两个证书文件。

3. 测试Nginx配置语法正确性

进入Nginx容器执行配置校验命令:

docker exec reverseproxy nginx -t

如果返回结果不是语法校验成功,按照提示修正对应配置即可。
注意你配置中引用了include /etc/nginx/conf.d/options-ssl-nginx.conf;,需要确认该文件在Nginx容器内真实存在,很多自定义Nginx镜像默认没有该文件,缺失会导致Nginx启动失败,排查时可以先注释该行测试访问。

4. 检查外部端口访问限制

虽然宿主机443端口已被docker-proxy监听,但需要确认两层规则是否放行:

  • 云服务器安全组是否开放443端口的入站规则
  • 宿主机防火墙是否开放443端口,以firewalld为例可执行以下命令校验:
firewall-cmd --list-all
# 若未开放443端口,执行以下命令添加规则
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

5. 本地验证443端口连通性

在宿主机本地执行curl命令测试,排除外部网络问题:

curl -v https://example.com --resolve example.com:443:127.0.0.1

如果本地可以正常访问,说明问题出在外部网络/防火墙规则;如果本地也提示连接拒绝,再回头排查Nginx容器内部的配置、证书问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:27:03