Amazon Linux 2023中Certbot报错:未找到监听80端口的虚拟主机
问题排查与解决:Amazon Linux 2023上Certbot无法识别80端口虚拟主机
核心问题
- 运行Certbot时触发报错:
Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80 - 已在
/etc/httpd/conf.d/目录创建虚拟主机配置文件,但执行sudo httpd -t -D DUMP_VHOSTS仅返回443端口的虚拟主机信息 - 修改
/etc/httpd/conf.d/ssl.conf中的域名配置后问题依旧
解决步骤
1. 修复虚拟主机配置文件后缀
Amazon Linux 2023的Apache默认仅加载/etc/httpd/conf.d/下以.conf结尾的配置文件。你创建的文件example.domain缺少该后缀,导致配置未被加载。执行以下命令重命名:
sudo mv /etc/httpd/conf.d/example.domain /etc/httpd/conf.d/example.domain.conf
2. 验证配置并重启Apache
- 检查配置语法是否正确:
sudo httpd -t - 若返回
Syntax OK,重启Apache服务:sudo systemctl restart httpd - 再次确认虚拟主机配置,此时应能看到80端口的条目:
sudo httpd -t -D DUMP_VHOSTS
3. 确认80端口监听状态
检查Apache是否实际监听80端口:
sudo ss -tulpn | grep httpd
输出需包含:80的监听记录,类似:tcp LISTEN 0 511 *:80 *:* users:(("httpd",pid=xxx,fd=xxx))
4. 开放80端口的网络访问
- 配置firewalld开放80端口:
sudo firewall-cmd --add-port=80/tcp --permanent sudo firewall-cmd --reload - 同步检查EC2实例的安全组,确保入站规则允许TCP 80端口的外部流量访问。
5. 重新运行Certbot
完成以上配置后,再次执行Certbot命令:
sudo certbot --apache
内容的提问来源于stack exchange,提问作者badnoodle
相关产品推荐
相关产品推荐

