网站/.well-known/目录可公网访问是否正常?如何设置安全权限?
关于.well-known目录的安全配置与权限设置
核心问题解析
.well-known是ACME协议(如Let's Encrypt)用于域名验证的标准目录,但公开可遍历确实存在风险——攻击者可能通过目录枚举发现敏感验证文件或其他意外存放的内容。
正确的权限配置
目录权限
- 保持
755是合理的,但要确保目录的所有者为web服务器用户(比如www-data、apache),而非匿名或不可控用户。755权限意味着所有者可读写执行,组和其他用户可读执行,既能让ACME客户端(如certbot)写入验证文件,也能让web服务器读取文件完成验证,同时避免其他用户修改目录内容。 - 若ACME客户端以root运行,后续可调整目录所有者为web用户,规避root权限残留风险。
文件权限
- 验证文件使用
644完全合规,这类文件仅需web服务器能读取,无需执行权限,也不允许其他用户写入。
禁止目录遍历的关键配置
权限只是基础,更重要的是通过web服务器配置禁用.well-known目录的索引遍历,这才是解决“能访问子目录及文件列表”问题的核心:
Nginx配置示例
在站点配置中添加:
location /.well-known/ { allow all; autoindex off; # 禁用目录索引 try_files $uri $uri/ =404; }
Apache配置示例
在.htaccess或站点配置中添加:
<Directory "/path/to/your/site/.well-known"> Options -Indexes # 关闭目录索引 AllowOverride None Require all granted </Directory>
配置后,访问https://yourdomain/.well-known/会返回403或404,而非目录文件列表,但ACME验证所需的单个文件(如/.well-known/acme-challenge/xxxx)仍可正常访问,不影响证书续期。
额外安全建议
- 定期清理.well-known目录下的旧验证文件,ACME客户端通常会自动清理,但手动检查可避免残留敏感内容。
- 不要在.well-known目录存放任何非ACME验证相关的文件,该目录仅用于协议规定的验证用途。
内容的提问来源于stack exchange,提问作者blogob
相关产品推荐
相关产品推荐

