在 CentOS 上给 Apache 设置访问密码,常见做法是通过 HTTP 基本认证(Basic Auth)。下面分步骤说明(适用 CentOS 7/8,Apache 2.4)。
systemctl status httpd
如未安装:
yum install -y httpd
systemctl start httpd
systemctl enable httpd
Apache 使用 htpasswd 工具。
yum install -y httpd-tools
例如:把密码文件放在 /etc/httpd/conf/.htpasswd
htpasswd -c /etc/httpd/conf/.htpasswd user1
会提示输入密码
-c)htpasswd /etc/httpd/conf/.htpasswd user2
假设你要保护的目录是:
/var/www/html/private
编辑 Apache 配置或虚拟主机:
vim /etc/httpd/conf/httpd.conf
或新建一个配置文件:
vim /etc/httpd/conf.d/auth.conf
内容示例:
<Directory "/var/www/html/private">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
</Directory>
.htaccess(不推荐,性能差)1️⃣ 允许 .htaccess
<Directory "/var/www/html/private">
AllowOverride AuthConfig
</Directory>
2️⃣ 在目录下创建 .htaccess
vim /var/www/html/private/.htaccess
内容:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
systemctl restart httpd
浏览器访问:
http://服务器IP/private
会弹出用户名密码框 ✅
setsebool -P httpd_read_user_content 1
AuthUserFile 路径正确chmod 644 /etc/httpd/conf/.htpasswd
✅ HTTPS 搭配使用(否则密码明文传输)
✅ 不要用 Basic Auth 保护高安全系统
✅ 可结合 Require ip 做双重限制
如果你愿意,可以告诉我:
我可以给你更精确的配置示例。