改DocumentRoot装Certbot后,DNS正常IP可访问但域名无法加载求助
CentOS7环境下Apache站点部署SSL后域名无法访问的排查指南
已确认的基础前置信息
- 运行环境:Hostinger非托管VPS,操作系统CentOS 7,承载站点的Web服务为Apache
- 故障现象:部署完SSL证书后,无论是否带www前缀的chaoticstupid.media均无法正常加载站点,但直接通过服务器公网IP可正常访问内容
- 已完成校验项:在GoDaddy域名注册商端核对所有DNS记录配置无异常,服务器本地公网IP访问链路正常
- 操作回溯:曾调整站点DocumentRoot至其他目录,全程无操作报错;使用Certbot部署SSL过程中,未收到教程提及的HTTP流量跳转HTTPS的二次交互提示
分步排查与修复操作
1. 校验Apache核心配置有效性
- 首先执行配置语法校验命令:
httpd -t,确认配置文件无语法错误,若出现行号定位的报错,逐行修正对应配置内容 - 检查站点关联的虚拟主机配置文件(通常存放路径为
/etc/httpd/conf.d/):- 核对80、443端口虚拟主机段中的
ServerName、ServerAlias字段,确保准确覆盖chaoticstupid.media、www.chaoticstupid.media两个域名,避免域名请求因匹配规则错误落到默认站点路径 - 核对443端口虚拟主机段关联的SSL证书、私钥存储路径,确认与Certbot实际生成的证书文件路径完全一致,避免因证书加载失败导致服务无响应
- 校验修改后的DocumentRoot路径的目录权限与SELinux上下文配置:执行
ls -Z /path/to/your/new/documentroot,对比原站点目录的SELinux安全标签,若标签不匹配执行restorecon -Rv /path/to/your/new/documentroot完成上下文修正
- 核对80、443端口虚拟主机段中的
2. 补全缺失的HTTP跳转HTTPS规则
- 部署Certbot时未出现重定向提示的常见原因:执行Certbot命令时附带了非交互式参数自动跳过了交互环节,或是Certbot检测到已有重定向规则后主动跳过了提示
- 可手动在80端口对应的虚拟主机段中添加301重定向规则,将所有HTTP流量引导至HTTPS站点,规则参考:
<VirtualHost *:80> ServerName chaoticstupid.media ServerAlias www.chaoticstupid.media DocumentRoot /path/to/your/new/documentroot Redirect permanent / https://chaoticstupid.media/ </VirtualHost>
- 规则配置完成后,先执行
httpd -t校验语法,确认无误后重载Apache服务:systemctl reload httpd
3. 校验网络端口放行规则
- 检查系统内置firewalld防火墙配置:执行
firewall-cmd --list-all,确认80、443端口已加入永久放行列表,若规则缺失执行firewall-cmd --permanent --add-service=http --add-service=https,再执行firewall-cmd --reload使规则生效 - 核对Hostinger VPS控制台的安全组入站规则,确认80、443端口的公网入站流量未被拦截(因已确认公网IP可正常访问,该环节可快速排除端口拦截类故障)
4. 定位具体访问报错
- 在本地终端分别执行
curl -v http://chaoticstupid.media、curl -v https://chaoticstupid.media,根据返回的具体报错码针对性修正:- 若返回连接超时:排查域名解析指向的IP与服务器实际公网IP是否一致,确认端口放行规则
- 若返回403权限错误:回溯目录访问权限、SELinux上下文、Apache配置中的目录访问Allow规则是否正确
- 若返回证书域名不匹配:检查SSL证书的SAN扩展字段,确认是否同时覆盖带/不带www的两个域名
内容的提问来源于stack exchange,提问作者Chaotic Stupid Media
相关产品推荐
相关产品推荐

