在Nginx中间件中配置 SSL 域名验证的 文件控制权验证,核心是确保中间件能正确响应 CA 访问指定验证文件的 HTTP 请求(通常是 http://yourdomain.com/.well-known/pki-validation/<文件名>
)。以下是详细配置步骤:
Nginx
- 创建验证文件目录
在 Nginx 的 Web 根目录下创建隐藏目录(若文件包已完整下载可跳过该步骤).well-known/pki-validation
。
mkdir -p /var/www/html/.well-known/pki-validation
- 放置验证文件
将下载或复制的验证文件(如file.txt
)放入该目录,并确保内容完全一致(无空格/换行)。
echo "CA提供的文件内容" > /var/www/html/.well-known/pki-validation/file.txt
chown -R nginx:nginx /var/www/html/.well-known # 确保权限正确
- 配置 Nginx 支持 HTTP 访问验证路径
修改 Nginx 配置文件(通常在/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
),确保以下规则生效:
server {
listen 80; #验证必须通过 80 端口
server_name yourdomain.com; # 你的域名
# 关键配置:允许访问 .well-known 目录
location ^~ /.well-known/pki-validation/ {
root /var/www/html; # 替换为你的实际 Web 根目录
default_type text/plain;
allow all; # 允许所有 IP 访问
}
}
注意:
- 验证期间必须保持 80 端口可访问(若有防火墙需临时放行80端口)。
- 测试验证文件可访问性
在浏览器或终端访问验证 URL,检查内容是否正确:
http://yourdomain.com/.well-known/pki-validation/file.txt
# 应返回 txt文件的内容
常见问题解决
- 访问返回 404 错误
- 检查文件路径是否正确(区分大小写)。
- 确认
root
指令指向的目录包含.well-known
。 - 查看 Nginx 错误日志:
tail -f /var/log/nginx/error.log
。
- 访问被重定向到 HTTPS
- 临时注释 HTTPS 重定向规则(步骤 3 中的
return 301 https://...
)。 - 或为验证路径单独禁用重定向:
location ^~ /.well-known/pki-validation/ {
# 保持原有配置
}
location / {
return 301 https://$host$request_uri; # 其他路径重定向
}
- 权限不足导致访问被拒
- 确保目录权限:
chmod -R 755 /var/www/html/.well-known
chown -R nginx:nginx /var/www/html/.well-known # 用户/组根据实际修改
- 隐藏目录被安全规则拦截
检查是否有规则禁止访问点开头的路径(如某些安全插件),在配置中显式允许:
location ~ /\. { # 默认可能拦截所有隐藏路径
deny all;
}
# 覆盖规则:允许 .well-known
location ^~ /.well-known {
allow all;
}
自动化推荐:使用 Certbot
若使用 Let’s Encrypt 证书,Certbot 可自动完成所有步骤(包括创建文件、配置 Nginx、续期):
# 安装 Certbot
sudo apt install certbot python3-certbot-nginx # Ubuntu/Debian
# 自动获取并配置证书(需确保域名已解析到服务器)
sudo certbot --nginx -d yourdomain.com
Certbot 会自动添加临时验证配置,验证后恢复原设置并配置 HTTPS。
总结
关键点 | 操作说明 |
验证文件路径 | /.well-known/pki-validation/<文件名> |
Nginx 配置位置 | server 块监听 80 端口,添加 location ^~ /.well-known/pki-validation/ |
端口要求 | 必须开放 HTTP (80 端口) |
测试命令 | curl http://yourdomain.com/.well-known/pki-validation/file.txt |
自动化工具 | 使用 Certbot 可免手动配置(推荐) |