温馨提示×

centos apache如何设密码

小樊
44
2026-08-30 00:37:51
栏目: 智能运维

CentOS 上给 Apache 设置访问密码,常见做法是通过 HTTP 基本认证(Basic Auth)。下面分步骤说明(适用 CentOS 7/8,Apache 2.4)。


一、确认 Apache 已安装并运行

systemctl status httpd

如未安装:

yum install -y httpd
systemctl start httpd
systemctl enable httpd

二、创建密码文件(保存账号密码)

Apache 使用 htpasswd 工具。

1️⃣ 安装 httpd-tools(通常已安装)

yum install -y httpd-tools

2️⃣ 创建密码文件

例如:把密码文件放在 /etc/httpd/conf/.htpasswd

创建第一个用户

htpasswd -c /etc/httpd/conf/.htpasswd user1

会提示输入密码

添加更多用户(不要再使用 -c

htpasswd /etc/httpd/conf/.htpasswd user2

三、配置 Apache 启用认证

方法一:针对某个目录(最常用)

假设你要保护的目录是:

/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

四、重启 Apache

systemctl restart httpd

五、测试

浏览器访问:

http://服务器IP/private

会弹出用户名密码框 ✅


六、常见问题

❌ 403 Forbidden

  • SELinux 开启时可能需要:
setsebool -P httpd_read_user_content 1

❌ 密码不生效

  • 确认 AuthUserFile 路径正确
  • 确认文件权限:
chmod 644 /etc/httpd/conf/.htpasswd

七、安全建议(重要)

HTTPS 搭配使用(否则密码明文传输)
✅ 不要用 Basic Auth 保护高安全系统
✅ 可结合 Require ip 做双重限制


如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ Apache 版本
  • ✅ 是保护目录、接口还是整个站点

我可以给你更精确的配置示例。

0