在 CentOS 上运行的 Apache HTTP Server,默认会在 HTTP 响应头 和 错误页面 中暴露版本信息(如 Server: Apache/2.4.x (CentOS)),存在一定安全风险。可以通过以下方式隐藏或伪装版本信息。
常见配置文件路径:
/etc/httpd/conf/httpd.conf
或(CentOS 7/8 常见):
/etc/httpd/conf.d/security.conf
推荐新建一个
security.conf,便于管理
在配置文件中添加或修改以下内容:
ServerTokens Prod
ServerSignature Off
| 参数 | 说明 |
|---|---|
ServerTokens Prod |
只显示 Server: Apache,不显示版本和 OS |
ServerSignature Off |
关闭错误页面中的 Apache 版本信息 |
✅ 这是最关键的一步
systemctl restart httpd
或:
service httpd restart
curl -I http://localhost
修改前:
Server: Apache/2.4.6 (CentOS)
修改后:
Server: Apache
访问一个不存在的 URL,确认错误页面中 没有 Apache 版本信息。
ServerTokens Prod)只要不是:
ServerTokens Full
ServerTokens OS
就不会显示 (CentOS)
yum install mod_security
然后可自定义 Server 头,但配置较复杂,一般不建议普通站点使用。
如果是生产环境,推荐:
127.0.0.1这样 Apache 版本完全不可见。
✅ CentOS Apache 隐藏版本信息只需两行:
ServerTokens Prod
ServerSignature Off
然后重启 Apache 即可 ✅
如果你愿意,我可以: