• RH358学习笔记--8(配置Web服务器学习)


    配置Web服务器

    一、使用Apache HTTPD配置基本Web服务器

    (1)安装Apache HTTP服务器

    [root@servera ~]# yum -y install httpd

    httpd模块支持三个配置文件:
     common:提供生产就绪部署(默认)
     minimal:提供可以运行Apache web服务器的最小软件包集
     devel:提供修改HTTPD所需的包

    [root@servera ~]# yum module install httpd:2.4/common
    (2)配置Apache HTTP服务器

    Apache HTTP Server读取它的配置如下:
     /etc/httpd/conf/httpd.conf 主配置文件。
     /etc/httpd/conf.d/ 它提供了补充配置文件,包括在httpd.conf,且文件名以.conf 结尾。
     /etc/httpd/conf.modules.d/ 提供了用于动态加载Apache模块的补充配置文件,且文件名以.conf结尾。

     文件的下一部分将设置应用到服务器的各个部分,影响从特定位置提供内容的方式,等等。
    <Directory />
          AllowOverride none
          Require all denied
    </Directory>
    # <Directory>块设置了应用于指定目录及其子目录的配置指令。

    <Directory "/var/www">
         AllowOverride None
         Require all granted
    </Directory>
    <Directory "/var/www/html">
          Options Indexes FollowSymLinks
          AllowOverride None
          Require all granted
    </Directory>
    <IfModule dir_module>
          DirectoryIndex index.html
    </IfModule>
    # 如果Apache dir_module模块被加载(默认),那么应用这些指令。DirectoryIndex指令指定如果一个URL被请求指向一个目录和一个index.html文件存在于该目录中,将该文件提供给客户端。

    <Files ".ht*">
         Require all denied
    </Files>
    # <Files>的工作方式类似于<Directory>块,但是应用于单个文件。在这种情况下,它阻止httpd提供敏感文件,如.htaccess和.htpasswd

    (3)启动Apache HTTP服务器

    [root@servera ~]# systemctl enable --now httpd

     安装httpd包和httpd-manual包。

    [root@servera ~]# yum -y install httpd httpd-manual

    按要求修改各种

    (4)配置Apache HTTPD虚拟主机

    使用<virtua lHost>块指令覆盖虚拟主机主配置文件中的设置。每个虚拟主机都有自己的块。
    在/etc/httpd/ conf.d/中单独的以.conf结尾的配置文件中配置虚拟主机是一种很好的做法。

     <VirtualHost _default_:80>
            DocumentRoot /srv/default/www
           CustomLog "logs/default-vhost.log" combined
           <Directory /srv/default/wwww>
             Require all granted
           </Directory>
    </VirtualHost>

    (5)使用 Apache HTTPD 配置 HTTPS

    描述 TLS 协议:
     TLS (Transport Layer Security)是HTTPS协议中用来保护web流量的真实性、保密性和完整性免遭攻击的协议。
     TLS使用公钥加密建立安全的TLS会话。一个密钥能加密的,只有它匹配的密钥才能解密。
     每个服务器都必须安装TLS证书。该证书包含关于该证书属于哪个服务器、过期时间以及密钥对的一半的信息;公共密钥。它还由证书颁发机构(CA)进行数字签名,该签名可用于验证服务器证书的真实性。服务器还必须安装与证书的公钥相匹配的私钥。
     当客户端连接到服务器并请求TLS会话时,它们执行一次初始握手,以就双方都可以支持的一组加密密码达成一致。服务器提供客户端客户机使用证书中的信息和CA的签名对其进行验证。然后客户端使用公钥与服务器进行安全通信,并使用它建立一个更快的会话密钥,该会话密钥可用于快速加密和解密数据,然后用于实际的安全会话。

    (6)配置基于 TLS 虚拟主机

     使用TLS的虚拟主机与常规虚拟主机的配置方式相同,只是有一些附加参数。

     <VirtualHost _default_:443>
        ErrorLog logs/ssl_error_log
       TransferLog logs/ssl_access_log
        LogLevel warn
       SSLEngine on
       SSLProtocol all -SSLv2 -SSLv3
       # 指定httpd可以用来与客户端通信的协议列表。您至少应该禁用已知安全问题的SSLV2和SSLV3。
       SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
        # 列出httpd在与客户端通信时可以使用的加密密码。密码的选择会严重影响性能和安全性。
       SSLHonorCipherOrder on
       # 确保服务器选择ssLciphersuite列表中前面出现的密码。因此,应该首先列出最安全的密码。
       SSLCertificateFile /etc/pki/tls/certs/localhost.crt
       SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
       CustomLog logs/ssl_request_log
       "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
    </VirtualHost>

    (7)HTTP客户端重定向到HTTPS站点

    要设置这些重定向,请为与TLS保护的虚拟主机相同的ServerName和serverAlias配置一个HTTP虚拟主机。得到的虚拟主机可能看起来像这样:

  • 相关阅读:
    腾讯// 反转字符串
    腾讯//Multiply Strings 字符串相乘
    腾讯//盛最多水的容器
    腾讯//删除排序数组中的重复项
    腾讯//删除排序数组中的重复项
    C语言中的预处理命令
    Python十大应用领域与就业方向
    Python的主要应用领域及应用场景
    Git命令_git status
    Git命令_git add快速添加文件到暂存区
  • 原文地址:https://www.cnblogs.com/yyuuee/p/15134146.html
Copyright © 2020-2023  润新知