linux上的apached/httpd配置

BRICS2025-ST-061-2025一带一路暨金砖大赛之-第一届信创适配及安全管理-赛项样题-httpd配置

假设您已经安装完成apached/httpd,且已经完成以下项目:

  1. dns的配置
  2. ca的基础配置
  3. 为每台实验主机都配置了安装源,fqdn,等必要步骤。

httpd.conf代码
```/etc/httpd/conf.d/conf.html# 80端口 - 重定向到HTTPS
<VirtualHost *:80>
    ServerName www.lab.org
    ServerAlias lab.org *.lab.org
    
    # 拒绝IP访问
    RewriteCond %{HTTP_HOST} ^[0-9.]+$
    RewriteRule .* - [F]
    
    # 重定向到HTTPS
    RewriteEngine On
    RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
</VirtualHost>

# 443端口 - HTTPS站点
<VirtualHost *:443>
    ServerName www.lab.org
    ServerAlias lab.org server1.lab.org web.lab.org
    
    DocumentRoot /var/www/html
    
    # SSL配置
    SSLEngine On
    SSLCertificateFile /etc/pki/tls/certs/lab.org.crt
    SSLCertificateKeyFile /etc/pki/tls/private/lab.org.key
    
    # 强制SSL
    SSLRequireSSL On
    
    # 子域名重定向到www
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.lab\.org$
    RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
    
    # 设置默认返回内容
    ErrorDocument 200 "Hello_OpenEuler"
</VirtualHost>

# 拒绝默认IP访问
<VirtualHost _default_:80>
    <Location />
        Require all denied
    </Location>
</VirtualHost>

<VirtualHost _default_:443>
    <Location />
        Require all denied
    </Location>
</VirtualHost>
```

编辑完以后请在存放网页的文件夹插入这一条“Hello_OpenEuler”(命令如下):

echo "Hello_OpenEuler" | sudo tee /var/www/html/index.html

代码段1:

# 80端口 - 重定向到HTTPS
<VirtualHost *:80>
    ServerName www.lab.org
    ServerAlias lab.org *.lab.org
    
    # 拒绝IP访问
    RewriteCond %{HTTP_HOST} ^[0-9.]+$
    RewriteRule .* - [F]
    
    # 重定向到HTTPS
    RewriteEngine On
    RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
</VirtualHost>
解释

<VirtualHost *:80>是虚拟主机——*(通配符所有):端口(80)

指定了server名称为www.lab.org

别名(lab.org,*.lab.org)

使用通配符和程序提供的程序内变量使用规则重写了内容

%{HTTP_HOST} ^[0-9.]+$

↑客户端访问主机 ↑是否为ip

然后启用重写指定到通配符所指的地方

^(.*)$ https://www.lab.org$1 [R=301,L]

将所有请求永久重定向(301)到 https://www.lab.org

</VirtualHost>然后结束标记

代码段2:

# 443端口 - HTTPS站点
<VirtualHost *:443>
    ServerName www.lab.org
    ServerAlias lab.org server1.lab.org web.lab.org
    
    DocumentRoot /var/www/html
    
    # SSL配置
    SSLEngine On
    SSLCertificateFile /etc/pki/tls/certs/lab.org.crt
    SSLCertificateKeyFile /etc/pki/tls/private/lab.org.key
    
    # 强制SSL
    SSLRequireSSL On
    
    # 子域名重定向到www
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.lab\.org$
    RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
    
    # 设置默认返回内容
    ErrorDocument 200 "Hello_OpenEuler"
</VirtualHost>
解释

<VirtualHost *:443>是虚拟主机——*(通配符所有):端口(443)

服务器名称和别名如上

ServerName www.lab.org
ServerAlias lab.org server1.lab.org web.lab.org

定义了文件根目录(DocumentRoot) /var/www/html

启用SSLEngine On

SSRequireSSL强制启用SSL

SSLCertificateFile是证书文件

SSLCertificateKeyFile是证书密钥

然后像刚刚那样重定向并且需要添加规则。在此不细说了,详情看第一段代码解释。

默认返回内容可以直接发送ErrorDocument请求定义为200并且返回指定的"Hello_OpenEuler"

</VirtualHost>标记结束。

代码段3:

# 拒绝默认IP访问
<VirtualHost _default_:80>
    <Location />
        Require all denied
    </Location>
</VirtualHost>

<VirtualHost _default_:443>
    <Location />
        Require all denied
    </Location>
</VirtualHost>

依次就是_default_:80/443端口全部禁止访问。

  1. (可扩展标记语言(Extensible Markup Language))
    XML 简介 – XML:可扩展标记语言 | MDN ↩︎

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注