一,https配置与http重定向
1,安装软件
dnf install -y httpd mod_ssl mod_security mod_security_crs
2. 生成自签名证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.crt
3. 用vi编辑重定向配置文件
vi /etc/httpd/conf.d/redirect.conf
写入:
<VirtualHost *:80>
ServerName your-domain.com
Redirect permanent / https://your-domain.com/
</VirtualHost>
4. 用vi编辑HTTPS配置文件
vi /etc/httpd/conf.d/ssl.conf
找到并修改成:
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
5. 重启服务
systemctl restart httpd
6. 设置开机自启
systemctl enable httpd
验证:
curl -I http://你的服务器IP
成功输出
HTTP/1.1 301 Moved Permanently
Location: https://your_domain.com/
Content-Type: text/html; charset=iso-8859-1
也可以去网页输入服务器IP
http自动跳转为https
curl -k -I https://your_domain.com
我的这个网页HTML写入为this is web 134
二、隐藏服务器信息
1.打开:
vi /etc/httpd/conf/httpd.conf
# 隐藏Apache版本和操作系统信息
ServerTokens Prod
ServerSignature Off
2.验证:
curl -I -k https://your_domain.com
成功输出:
HTTP/1.1 200 OK
Server: Apache # 无版本号、无操作系统信息
Content-Type: text/html; charset=UTF-8
三、目录浏览禁用
1.创建一个空目录:
mkdir -p /var/www/html/test
2.打开文件配置:
vi /etc/httpd/conf/httpd.conf
3.配置:
<Directory "/var/www/html">
Options -Indexes # 去掉Indexes参数,禁用目录浏览
AllowOverride None
Require all granted
</Directory>
4. 访问无index文件的目录
curl -k http://your_domain.com/test_dir/
成功输出:
HTTP/1.1 403 Forbidden
Content-Type: text/html; charset=iso-8859-1
说明:
-这是因为 Apache 使用的是自签名证书,curl 等工具默认会验证证书的合法性,而自签名证书不被公共信任机构认可,所以会报这个错。
- 测试时可以用 curl -k 跳过验证,生产环境建议使用受信任的 CA 证书