博客

  • linux上的apached/httpd配置

    linux上的apached/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 ↩︎
  • 技术宅,你好!

    111
    123