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]