三十一、【Linux网站服务器】搭建httpd服务器演示个人主页、用户认证、https加密网站配置
httpd服务器功能演示
- 一、安装 HTTPD 服务
- 二、配置个人用户主页
- 1. 启用个人空间功能
- 2. 创建测试用户及网站目录
- 3. 配置 SELinux 权限
- 三、配置用户认证
- 1. 创建密码文件
- 2. 配置目录认证
- 3. 重启服务生效
- 四、配置 SSL 加密网站
- 1. 生成自签名证书
- 2. 配置 SSL 虚拟主机
- 3. 重启服务验证
- 命令总结表格
- 功能作用详解
- 1. 个人用户空间
- 2. 用户认证机制
- 3. SSL 加密网站
一、安装 HTTPD 服务
# 安装 HTTPD 服务端
[root@localhost ~]# yum install httpd mod_ssl -y
Loaded plugins: fastestmirror
Package httpd-2.4.37-56.el8.x86_64 installed# 启动服务并设置开机自启
[root@localhost ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service# 开放防火墙
[root@localhost ~]# firewall-cmd --permanent --add-service={http,https}
[root@localhost ~]# firewall-cmd --reload
- 关键配置文件说明
配置文件 | 路径 | 主要功能 | 关键参数 |
---|---|---|---|
主配置文件 | /etc/httpd/conf/httpd.conf | 全局设置 | ServerRoot, Listen |
模块配置 | /etc/httpd/conf.modules.d/ | 加载模块 | LoadModule |
虚拟主机 | /etc/httpd/conf.d/vhost.conf | 多站点管理 | VirtualHost |
SSL配置 | /etc/httpd/conf.d/ssl.conf | HTTPS支持 | SSLEngine, SSLCertificateFile |
二、配置个人用户主页
1. 启用个人空间功能
# 编辑个人主页配置文件
[root@localhost ~]# vi /etc/httpd/conf.d/userdir.conf
# 修改以下两行 👇
UserDir enabled # 取消第17行注释(启用功能)
UserDir public_html # 取消第24行注释(设置用户网站目录名)
2. 创建测试用户及网站目录
# 创建用户 alice 并设置密码
[root@localhost ~]# useradd alice
[root@localhost ~]# echo "p@ssw0rd" | passwd --stdin alice# 创建个人网站目录并设置权限
[root@localhost ~]# su - alice -c "mkdir ~/public_html"
[root@localhost ~]# echo "Welcome to Alice's Homepage!" > /home/alice/public_html/index.html
[root@localhost ~]# chmod 711 /home/alice # 开放家目录执行权限
[root@localhost ~]# chmod -R 755 /home/alice/public_html
3. 配置 SELinux 权限
# 启用 HTTPD 访问家目录
[root@localhost ~]# setsebool -P httpd_enable_homedirs=on# 设置安全上下文
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/home/alice/public_html(/.*)?"
[root@localhost ~]# restorecon -Rv /home/alice/public_html
三、配置用户认证
1. 创建密码文件
# 首次创建需用 -c 参数(后续添加用户省略)
[root@localhost ~]# htpasswd -c /etc/httpd/secure_passwd alice
New password: ********
Re-type new password: ********
2. 配置目录认证
# 编辑用户目录配置文件
[root@localhost ~]# vi /etc/httpd/conf.d/userdir.conf
# 在 `<Directory>` 块内追加 👇
<Directory "/home/*/public_html">AuthType Basic # 基础认证类型AuthName "Private Content" # 认证提示信息AuthUserFile /etc/httpd/secure_passwd # 密码文件路径Require valid-user # 允许所有认证用户访问
</Directory>
3. 重启服务生效
[root@localhost ~]# systemctl restart httpd
四、配置 SSL 加密网站
1. 生成自签名证书
# 创建证书存放目录
[root@localhost ~]# mkdir /etc/pki/tls/private/localhost
[root@localhost ~]# cd /etc/pki/tls/private/localhost# 生成私钥和证书
[root@localhost localhost]# openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout localhost.key -out localhost.crt \
-subj "/C=CN/ST=Beijing/L=Beijing/O=Localhost/CN=localhost"
2. 配置 SSL 虚拟主机
# 编辑 SSL 配置文件
[root@localhost ~]# vi /etc/httpd/conf.d/ssl.conf
# 修改以下参数 👇
<VirtualHost *:443>DocumentRoot /var/www/html # 网站根目录ServerName localhost:443 # 服务器域名SSLEngine on # 启用 SSLSSLCertificateFile /etc/pki/tls/private/localhost/localhost.crtSSLCertificateKeyFile /etc/pki/tls/private/localhost/localhost.key
</VirtualHost>
3. 重启服务验证
[root@localhost ~]# systemctl restart httpd
# 浏览器访问 https://localhost/~alice 将提示安全风险(自签名证书需手动信任)
命令总结表格
演示命令 | 功能描述 | 关键参数/文件 |
---|---|---|
yum install httpd mod_ssl -y | 安装HTTPD及SSL模块 | mod_ssl 提供HTTPS支持 |
vi /etc/httpd/conf.d/userdir.conf | 配置个人主页功能 | UserDir enabled 启用功能 |
htpasswd -c /etc/httpd/secure_passwd alice | 创建认证用户 | -c 首次创建文件 |
setsebool -P httpd_enable_homedirs=on | 允许HTTPD访问家目录 | SELinux策略开关 |
openssl req -x509 ... | 生成SSL证书 | -keyout (私钥), -out (证书) |
vi /etc/httpd/conf.d/ssl.conf | 配置HTTPS站点 | SSLCertificateFile (证书路径) |
功能作用详解
1. 个人用户空间
# /etc/httpd/conf.d/userdir.conf
UserDir enabled # 启用个人主页功能
UserDir public_html # 用户网站目录名称
-
访问方式:
http://服务器IP/~用户名
(如http://192.168.1.100/~alice
) -
权限控制:
-
家目录需
711
权限:chmod 711 /home/alice
-
网站目录需 755权限:
chmod 755 ~/public_html
-
2. 用户认证机制
<Directory "/home/*/public_html">AuthType BasicAuthName "Restricted Access"AuthUserFile /etc/httpd/secure_passwd # 密码存储文件Require valid-user # 允许所有认证用户
</Directory>
-
密码管理命令:
操作 命令 添加用户 htpasswd /etc/httpd/secure_passwd bob
删除用户 htpasswd -D /etc/httpd/secure_passwd bob
SHA加密密码 htpasswd -s /etc/httpd/secure_passwd carol
3. SSL 加密网站
# /etc/httpd/conf.d/ssl.conf
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/private.key
-
证书类型对比:
类型 适用场景 浏览器信任 自签名证书 测试环境 需手动信任 CA签发证书 生产环境 自动信任 -
强制HTTPS跳转(追加到
ssl.conf
):apache
复制
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]