三十一、【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.confHTTPS支持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]
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/93817.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

把Java程序部署到本地Docker

一&#xff1a;clean && install程序install之后会在target中生成jar包 二&#xff1a;准备三个文件&#xff08;1&#xff09;其中Dockerfile主要起到配置作用&#xff1a;# 基础镜像 FROM openjdk:17-jdk-slim # 作者 MAINTAINER "" # 配置 ENV PAR…

Java学习-------外观模式

在软件开发中&#xff0c;随着系统的不断迭代&#xff0c;模块会越来越多&#xff0c;模块之间的依赖关系也会变得错综复杂。这不仅会增加开发难度&#xff0c;还会让系统的维护和扩展变得棘手。而外观模式就像一位 “前台接待员”&#xff0c;为复杂的系统提供一个简洁统一的接…

Go语言-->变量

Go语言–>变量 在 Go 语言中&#xff0c;定义变量有几种常见的方式。下面是一些常见的语法和用法&#xff1a; 1. 使用 var 关键字定义变量 最常见的方式是使用 var 关键字&#xff0c;后面跟上变量名和类型。你也可以为变量赋初值。 基本格式&#xff1a; var variableName…

分布式链路追踪的实现原理

分布式链路追踪系统的实现涉及多个核心技术环节&#xff0c;下面我将从数据采集、上下文传播、存储分析等维度深入解析其工作原理。 一、核心架构组件 1. 系统组成模块 #mermaid-svg-pDlZY54w2Z0Bp1H1 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-si…

Python爬虫实战:研究micawber库相关技术构建网页采集系统

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上的数据量呈现出爆炸式增长。如何从海量的网页数据中提取有价值的信息,成为了一个重要的研究课题。网络爬虫作为一种自动获取网页内容的技术,为解决这一问题提供了有效的手段。通过网络爬虫,可以快速、高效地采集…

前端框架Vue3(三)——路由和pinia

路由的理解 路由就是一组key-value的对应关系&#xff0c;多个路由&#xff0c;需要经过路由器的管理。 路由-基本切换效果 导航区、展示区请来路由器制定路由的具体规则&#xff08;什么路径&#xff0c;对应着什么组件&#xff09;形成一个一个的路由 【两个注意点】 路由组件…

【go】实现BMI计算小程序与GUI/WEB端实现

好的&#xff0c;下面是用 Go 语言实现的一个简单的 BMI&#xff08;Body Mass Index&#xff0c;身体质量指数&#xff09;计算器&#xff0c;包含中文注释与完整代码&#xff0c;可以直接运行。 一、BMI 计算公式 BMI体重&#xff08;kg&#xff09;身高2&#xff08;m2&…

Windows系统优化命令-记录

闲着无聊&#xff0c;近来电脑有些卡顿&#xff0c;记录一下相关命令。最好的命令还是格式化╮(╯▽╰)╭ 1. 磁盘清理相关命令 cleanmgr - 磁盘清理工具 cleanmgr启动磁盘清理工具&#xff0c;可清理临时文件、回收站等内容 diskpart - 磁盘分区工具 diskpart用于磁盘管理&…

BFCP协议学习

BFCP是为了SIP呼叫中实现presentation的二进制协议。开源库libbfcp 如何协商角色 SIP 消息的SDP中有BFCP 的部分&#xff0c;其中s-only 代表要当服务器角色&#xff0c;c-only 代表要当client角色。confid, userid 都是需要在后续消息中对齐的。 通过port信息可以为后续bfcp…

常用设计模式系列(十七)—命令模式

常用设计模式系列&#xff08;十七&#xff09;—命令模式 第一节、前言 各位老铁好&#xff01; 今天我来跟大家分享对象行为型模式第二章节——《命令模式》&#xff0c;“命令”一词&#xff0c;通俗易懂&#xff0c;我们在生活中经常会发出各种各样的命令&#xff0c;就像你…

【AI绘画】Stable Diffusion 全面指南:安装、版本对比、功能解析与高级应用

引言&#xff1a;Stable Diffusion 概述 在人工智能图像生成领域&#xff0c;商业工具如Midjourney凭借其集成化服务与高质量输出占据市场&#xff0c;而Stable Diffusion&#xff08;简称SD&#xff09;则以开源特性构建了差异化优势。与商业工具依赖云端资源、受限于订阅费用…

kafka使用kraft

window 使用kafka-storage生成生成一个uuid .\kafka-storage.bat random-uuid格式化存储 在这里插入代码片.\kafka-storage.bat format -t 对应的uuid D:\configure\fisher\kafka\config\kraft\server.properties 启动命令 .\kafka-server-start.bat D:\configure\fisher\kafka…

HCIA-Datacom认证笔记:IP路由基础——核心概念与路由分类

网络技术学习中&#xff0c;IP路由是绕不开的核心知识点&#xff0c;对于备考HCIA-Datacom认证的朋友来说&#xff0c;掌握路由基础能为后续学习打下良好基础。今天带朋友们梳理一下IP路由的核心概念、路由表结构及路由分类一、路由核心概念什么是路由&#xff1f; 简单来说&am…

FFmpeg 安装与使用

文章目录1. 环境部署&#xff08;Windows&#xff09;1.1. 安装包下载1.2. 配置环境变量1.3. 验证安装2. FFmpeg 基础使用教程2.1. 常用命令格式2.2. 基础功能示例2.2.1. 视频转码&#xff08;MP4 → MKV&#xff09;2.2.2. 调整分辨率&#xff08;1080p → 480p&#xff09;2.…

Python 数据分析(四):Pandas 进阶

目录 1. 概述2. 缺失项3. 分组聚合4. 数据合并5. 数据可视化 5.1 折线图5.2 条形图5.3 直方图5.4 散点图5.5 饼图 1. 概述 我们在上一篇文章初识 Pandas中已经对 Pandas 作了一些基本介绍&#xff0c;本文我们进一步来学习 Pandas 的一些使用。 2. 缺失项 在现实中我们获…

结构化文本文档的内容抽取与版本重构策略

结构化文本文档的内容抽取与版本重构策略 摘要 本文深入探讨了结构化文本文档处理领域中的两大核心技术——内容抽取与版本重构。文章首先分析了结构化文档的特点及其在现代信息管理中的重要性&#xff0c;随后系统性地介绍了文档内容抽取的技术路线与方法论&#xff0c;包括…

【BUUCTF系列】[HCTF 2018]WarmUp1

本文仅用于技术研究&#xff0c;禁止用于非法用途。 Author:枷锁 点开题目显示一个图片&#xff0c;没有任何交互功能&#xff0c;我们直接查看网页源代码我们可以看到有一个歆慕的注释source.php&#xff0c;我们进行拼接&#xff0c;访问一下这个文件在url后加上/source.php进…

Flutter Chen Generator - IconFont Generator

Flutter Chen Generator &#x1f680; 一个强大的Flutter代码生成工具包&#xff0c;包含多个实用的代码生成器。 ✨ 功能特性 &#x1f4c1; 资源生成器 (Assets Generator) &#x1f504; 自动扫描assets目录并生成Dart常量&#x1f9e0; 智能驼峰命名转换&#xff0c;保…

【MATLAB】(二)基础知识

一.MATLAB命令1.指令行“头首”的 “>>” 是 “指令输入提示符” &#xff0c;它是自动输入的。“>>” 为运算提示符&#xff0c;表示MATLAB处于准备就绪状态。如在提示符后输入一条命令或一段程序后按Enter键&#xff0c;MATLAB将给出对应的结果&#xff0c;并将结…

Day36| 1049. 最后一块石头的重量 II、494.目标和、474.一和零

文章链接 1049. 最后一块石头的重量 II 解题关键&#xff1a;找到重量和尽量相等的两堆 确定dp数组以及下标的含义 dp[j]表示容量&#xff08;这里说容量更形象&#xff0c;其实就是重量&#xff09;为j的背包&#xff0c;最多可以背最大重量为dp[j]。 确定递推公式 01背包…