Ubuntu服务器用Certbot+Apache申请Let's Encrypt SSL证书失败
解决Certbot+Apache申请SSL证书时的验证失败问题
排查与修复步骤
确认域名解析正确性
执行ping mydomain.com或nslookup mydomain.com,确保域名已指向服务器公网IP,解析生效可能需要数分钟到数小时。检查端口连通性
Let's Encrypt依赖80端口完成HTTP验证,先通过ufw status查看防火墙规则,若80/443端口未开放,执行:sudo ufw allow 80/tcp sudo ufw allow 443/tcp同时检查云服务商安全组,确保这两个端口已对外放行。
修复Apache基础配置
确保Apache默认站点配置(通常路径/etc/apache2/sites-available/000-default.conf)包含正确的域名指向:<VirtualHost *:80> ServerName mydomain.com DocumentRoot /var/www/html </VirtualHost>保存配置后重启Apache:
sudo systemctl restart apache2,再重新运行Certbot命令。手动执行HTTP-01验证
若自动配置验证失败,可手动完成验证流程:- 创建验证目录:
sudo mkdir -p /var/www/html/.well-known/acme-challenge - 设置目录权限:
sudo chown -R www-data:www-data /var/www/html/.well-known - 运行手动模式命令:
sudo certbot certonly --manual -d mydomain.com,按照提示创建指定内容的验证文件,确认http://mydomain.com/.well-known/acme-challenge/[文件名]可正常访问后完成验证。
- 创建验证目录:
安装适配Apache的Certbot插件
确保安装了官方Apache插件:sudo apt install python3-certbot-apache,之后重新执行证书申请命令:sudo certbot --apache -d mydomain.com
内容的提问来源于stack exchange,提问作者Silikazi
相关产品推荐
相关产品推荐

