httpd2.2


 httpd -t:检查httpd配置文件/etc/httpd/conf/httpd.conf的语法错误

请求报文语法

<method> <request-URL> <version>

资源获取方法,资源是什么,http协议版本号

<headers>

请求报文首部

 

空行

<entity-body>

报文主体

GET / HTTP/1.1
Host: www.a.com
Connection: keep-alive

起始行     /代表主页

headers域

 method:请求方法,标明客户端希望服务器对资源执行的动作
   GET:从服务器获取资源
   HEAD:只从服务器获取文档的响应首部,就是除了报文主体部分。没有报文主体
   POST:向服务器发送要处理的数据。报文主体有数据
   PUT:将请求的主体部分存储在服务器上,就是上传数据。报文主体有数据
   DELETE:请求删除服务器上的文档
   TRACE:追踪请求到达服务器中间经过的代理服务器
   OPTIONS:请求服务器返回对指定资源支持使用的方法
 version:HTTP/major.minor版本号

响应报文语法

<version> <status> <reason-phrase>

响应协议版本号,状态码,状态码解释

<headers>

响应报文首部

 

空行

<entity-body>

报文主体

HTTP/1.1 200 OK
X-Powered-By: PHP/5.2.17
Vary: Accept-Encoding,Cookie,User-Agent
Cache-Control: max-age=3, must-revalidate
Content-Encoding: gzip
Content-Length: 6931

起始行

-------header域

 

status

1xx

纯信息100-101

2xx

成功类的信息200-206

200:请求的所有数据通过响应报文的主体部分发送。"OK"

3xx

重定向类信息300-305

301:请求的URL指向资源已被删除,单在响应报文中通过首部Location指明了资源现在所处的新位置,即永久重定向"Moved Permanently" 

302:与301相似,只不过是临时指向到新位置,即临时重定向"Found"

304:客户端发出请求,但服务器上的资源未曾发生改变,则通过响应304通知客户端,即无改变"Not Modified"

4xx

客户端错误信息400-415

401:需要输入账号和密码,认证后才能访问。"Unauthorized"

403:请求被禁止。"Forbidden"

404:服务器无法找到客户端请求的资源。"Not Found"

5xx

服务端错误信息500-505

500:服务器内部错误。"Internal Server Error"

502:代理服务器从后端服务器收到一条伪响应。"Bad Gateway"

 

head

通用首部

Date:报文创建时间

Connection:连接状态,如keep-alive,close

Via:显示报文经过的中间节点

Cache-Control:控制缓存

请求首部

Accept:通知服务器能接收的媒体类型

Accept-Charset:通知服务器能接收的字符

Accept-Encoding:通知服务器能接收的编码格式

Accept-Language:能接收的语言

Client-IP:客户端ip

Host:请求的服务器名称和端口号

Referer:从哪个页面跳转

User-Agent:浏览器类型

条件请求首部

Expect

If-Modified-Since:自从指定时候后,请求的资源是否发生过修改。缓存请求

If-Unmodified-Since:同上,是否没变过

If-None-Match:本地缓存中存储文件的Etag标签是否与服务器文档的Etag不匹配

If-Match:同上,是否匹配

安全请求首部

Authorization:向服务器发送认证信息,如账号密码

Cookie:客户端向服务器段发送Cookie

Cookie2:第二版的

代理请求首部

Proxy-Authorization:向代理服务器认证

响应首部

Age:响应持续时长

Server:服务器软件名称和版本

协商首部

Accept-Ranges:服务器可接受的请求范围类型

Vary:服务器查看的其他首部列表

安全响应首部

Set-Cookie:向客户端设置Cookie

Set-Cookie2:第二版的

www-Authenticate:来自服务器的对客户端的质询认证表单

内容首部

Allow:列出对此资源可使用的请求方法

Location:告诉客户端真正内容位于何处

Content-Encoding:内容编码格式

Content-Language:内容语言

Content-Length:内容的长度

Content-Location:内容真正位置

Content-Type:内容的类型

缓存相关

Etag:内容扩展标签

Expires:内容过期时间

Last-Modified:内容最后一次修改时间      



Web服务器处理并发连接请求的架构方式
1、单线程web服务器(Single-threaded web servers)
一个进程处理用户请求,一次处理一个
此种架构方式中,web服务器一次处理一个请求,结束后读取并处理下一个请求。在某请求处理过程中,其它所有的请求将被忽略,因此,在并发请求较多的场景中将会出现严重的必能问题。
2、多进程/多线程web服务器
启用多个进程,每个进程处理一个请求
此种架构方式中,web服务器生成多个进程或线程并行处理多个用户请求,进程或线程可以按需或事先生成。有的web服务器应用程序为每个用户请求生成一个单独的进程或线程来进行响应,不过,一旦并发请求数量达到成千上万时,多个同时运行的进程或线程将会消耗大量的系统资源。
3、I/O多路复用web服务器
一个进程生成多个N个线程,每个线程响应一个请求
为了能够支持更多的并发用户请求,越来越多的web服务器正在采用多种复用的架构——同步监控所有的连接请求的活动状态,当一个连接的状态发生改变时(如数据准备完毕或发生某错误),将为其执行一系列特定操作;在操作完成后,此连接将重新变回暂时的稳定态并返回至打开的连接列表中,直到下一次的状态改变。由于其多路复用的特性,进程或线程不会被空闲的连接所占用,因而可以提供高效的工作模式。
4、多路复用多线程web服务器
启用多个进程,每个进程响应N个请求
将多进程和多路复用的功能结合起来形成的web服务器架构,其避免了让一个进程服务于过多的用户请求,并能充分利用多CPU主机所提供的计算能力。

MPM:多道处理模块
1.prefork:一个请求用一个进程响应
一个主进程负责生成n个子进程,主进程不负责处理请求,子进程也称为工作进程,每个子进程处理一个用户请求,即便没有用户请求,也会预先生成多个空进程,随时等待请求。最大不超过1024个


2.worker:一个请求用一个线程响应
一个主进程生成n个子进程,子进程生成多个线程,每个线程对应一个请求


3.event:一个进程响应多个请求
类似于worker模型,但是会独有管理长连接的线程 

I/O模型
blocking IO:阻塞式IO
noblcoking IO:非阻塞式IO
IO multiplexing:复用型IO
signal driven IO:事件驱动型IO
asynchronous IO:异步IO

程序环境

  配置文件:
    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*.conf
  服务脚本:
    /etc/rc.d/init.d/httpd
  脚本配置文件:
    /etc/sysconfig/httpd
  主程序文件:
    /usr/sbin/httpd          默认prefork模型
    /usr/sbin/httpd.event      event模型
    /usr/sbin/httpd.worker     worker模型
  日志文件目录:
    /var/log/httpd/
    /var/log/httpd/access_log  访问日志
    /var/log/httpd/error_log   错误日志
  站点文档目录:
    /var/www/html  
  模块文件路径:
    /usr/lib64/httpd/modules
    /etc/httpd/modules    这个链接到上面 

 

 

httpd启动脚本配置文件

[root@localhost conf]# cat /etc/sysconfig/httpd 
# Configuration file for the httpd service.

#
# The default processing model (MPM) is the process-based
# 'prefork' model.  A thread-based model, 'worker', is also
# available, but does not work with some modules (such as PHP).
# The service must be stopped before changing this variable.
#
#HTTPD=/usr/sbin/httpd.worker          这里可以更改模型
[root@localhost conf]# httpd -l        可以查看当前httpd可以支持的模型,缺少的话可以用rpm安装
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

httpd配置文件/etc/httpd/conf/httpd.conf,分为三个部分,全局、主、虚拟,主和虚拟不能同时配置

♦第一段:全局配置Section 1: Global Environment

指令:字符    指令不区分大小写,字符区分大小写
  ServerTokens OS:            显示一些主机的信息,有几个选项,分别代表显示信息的多少
  ServerRoot "/etc/httpd":       服务器根目录
  PidFile run/httpd.pid:        pid号码,run代表根目录
  Timeout 60:                三次握手超时时间
  KeepAlive Off:            长链接
  MaxKeepAliveRequests 100:      最大长链接限制
  KeepAliveTimeout 15:        长链接超时时间

  <IfModule prefork.c>        假如使用prefork模块
  StartServers       8        服务器刚启动就要起动8个进程
  MinSpareServers    5                最少空闲进程5个
  MaxSpareServers   20         最大空闲进程20个
  ServerLimit      256                服务器上限值,针对MaxClients
  MaxClients       256                最大客户端数
  MaxRequestsPerChild  4000      一个进程最多响应4000次
  </IfModule>
  
  <IfModule worker.c>         假如使用worker模型
  StartServers         4             
  MaxClients         300               最大客户端数
  MinSpareThreads     25               最小空闲线程
  MaxSpareThreads     75        最大空闲线程
  ThreadsPerChild     25        一个进程可以生成多少个线程
  MaxRequestsPerChild  0        一个进程最多响应
  </IfModule>

  #Listen 12.34.56.78:80        指定监听地址和端口
  Listen 80                              如不指定代表监听主机上所有地址的80端口
  Listen 8080                            可以同时监听多个端口

  # LoadModule foo_module modules/mod_foo.so            指定装载模块
  #
  LoadModule auth_basic_module modules/mod_auth_basic.so
  LoadModule auth_digest_module modules/mod_auth_digest.so

  Include conf.d/*.conf                     包含conf.d/下所有.conf文件    
  
  User apache              root启动httpd服务之后由哪个用户接管httpd服务
  Group apache
 

♦第二段:中心主机配置Section 2: 'Main' server configuration

 

ServerAdmin root@localhost               ##服务器管理员,邮箱地址 
#ServerName www.example.com:80           ##服务器名字,默认没有启用,如果启动httpd时报错,无法解析本地ip地址,可以在host文件中自定义解析
UseCanonicalName Off
DocumentRoot "/var/www/html"        ##文档根目录,就是网页的存放路径
<Directory "/var/www/html">        ##限制/var/www/html目录的容器
#options选项:              生产环境中要做到都不启用
  #ALL:支持所有选项
  #NONE:不支持所有选项  
  #Indexes:是否允许索引目录,如果没有首页时,是否把这个目录里面的文件都列出来
  #Includes:允许执行服务器端包含SSI文件
  #FollowSymLinks:允许访问符号链接,就是跳转页面
  #SymLinksifOwnerMatch:如果属主和符号链接的属主匹配才允许执行符号链接
  #ExecCGI:是否允许执行CGI脚本
  #MultiViews:多视图
Options Indexes FollowSymLinks    ##默认启用这两个选项
AllowOverride None           ##是否允许覆盖,覆盖掉下面Order的选项。
  #AllowOverride  AuthConfig           覆盖掉下面Order选项,基于认证访问
  #AuthType Basic              认证类型基本认证类型
   #AuthName “aaaaa”                     这段话将出现输密码的地方
  #AuthUserFile “路径”                  基于哪个文件作为用户认证文件
  #AuthGroupFile “路径”                 基于哪个文件作为组认证文件
  #Require group|user|valid-user  users 可以让哪些用户或者组的人访问,valid-user代表有效的用户都可以访问   
    Order allow,deny            ##allow和deny可以更改顺序,先后匹配的关系。用于定义基于主机的访问功能,ip、网络地址或主机定义访问控制机制
    Allow from all              ##允许所有
   Deny from all              ##拒绝所有。两个all同时使用就要看Order选项,哪个在后面,哪个生效  
#允许,拒绝可以从下面几个方面选择
#IP:
#network/netmask:
#HOSTNAME:www.a.com
#DOMAINNAME:a.com
#Partial IP:10.10 = 10.10.0.0/16         
</Directory>

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<IfModule mod_userdir.c>          #是否允许用户创建家目录网页
    UserDir disabled            #默认为不允许
    #UserDir public_html          #如果开放的话,需要用户在自己家目录下创建/public_html目录,在此目录下创建网页。访问http://域名/~用户名/public_html
</IfModule>
#<Directory /home/*/public_html>      这一段是针对允许用户创建家目录时的限制
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>

DirectoryIndex index.html index.html.var    ##当没有指定访问那个页面时,指向这两个路径
AccessFileName .htaccess            ##每目录的访问权限,生产环境不用
<Files ~ "^\.ht">                ##文件容器,这段定义的是以.ht开头的文件,都不允许访问
    Order allow,deny
    Deny from all
    Satisfy All
</Files>
TypesConfig /etc/mime.types          #支持传输哪些非二进制文件
DefaultType text/plain             #默认传输文本
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off                #记录日志时,是否把ip转换成主机名,浪费资源
#EnableMMAP off
#EnableSendfile off
ErrorLog logs/error_log              #错误日志存放路径
LogLevel warn                    #日志级别
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent               
#这些都是日志记录的格式,每一行末尾都是一个名词,分别代表以什么形式存储日志
#%h:远程主机  %l:远程主机的登录名称  %u:登录网站时用户  %t:日志产生时间  %r:请求报文第一行
#%>s:最后一次请求的状态码  %b:响应报文大小  %{Referer}i:从哪个页面跳转
#%{User-Agent}i:浏览器类型

#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
#CustomLog logs/access_log common            
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
CustomLog logs/access_log combined        #这个就是以什么形式记录访问日志

ServerSignature On                
Alias /icons/ "/var/www/icons/"          #路径别名,可以写别的地方的路径,别名和路径后面的斜线同时有或没有

<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

 ♦第三段:虚拟主机配置Section 3: Virtual Hosts,虚拟主机不能与中心主机同时使用,要在第二段注释掉DocumentRoot "/var/www/html"

# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier 
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

 常用配置(httpd.conf):指令 字符   指令不区分大小写,字符为路径时取决于文件

1.修改监听的ip和port
  Listen [ip:]port。省略ip表示监听本机所有ip,listen可重复出现多次。
2.长连接
  KeepAlive On | Off      是否打开长连接
  MaxKeepAliveRequests #  单个最大长链接限制
  KeepAliveTimeout #     长连接超时时间
3.查看正在使用的模块
  ps aux
| grep httpd,默认为/usr/sbin/httpd,为prefork模型
4.查看模块列表
  httpd -l:静态编译模块
  httpd -M:静态和动态装载的模块
5.更换httpd模型
  编辑/etc/sysconfig/httpd,替换httpd=****.worker | event
6.prefork模型

 <IfModule prefork.c>        假如使用prefork模块
  StartServers       8        服务器刚启动就要起动8个进程
  MinSpareServers    5                最少空闲进程5个
  MaxSpareServers   20         最大空闲进程20个(大批量进,大批量出)
  ServerLimit      256                服务器上限值,针对MaxClients
  MaxClients       256                最大客户端数
  MaxRequestsPerChild  4000      一个进程最多响应4000次
  </IfModule>

7.worker模型

  <IfModule worker.c>         假如使用worker模型   
    StartServers 4              开始启用4个进程
    MaxClients 300           最大客户端数   
    MinSpareThreads 25       最小空闲线程   
    MaxSpareThreads 75       最大空闲线程   
    ThreadsPerChild 25        一个进程可以生成多少个线程   
    MaxRequestsPerChild 0      一个进程最多响应   
  </IfModule>

8.DSO(动态共享库)
  LoadModule <mod_name> <mod_path>:模块加载,模块路径可使用相对地址,相对于ServerRoot(/etc/httpd)

9.网站文档存放路径
  DocumentRoot    “/var/www/html”

10.站点访问控制:可以基于ip,账号控制
  文件系统路径:
    <Directory  " ">     </Directory>
    <File  " ">     </File>
  URL路径:
    <Location " ">    </Location>

11.Directory访问控制
  options
    indexes:当没有定义主页时,是否将网站内所有的东西以目录展示。尽量不启用
    FollowSymlinks:当目录内存在链接时,是否允许访问这个文件
    SymLinksifOwnerMatch:如果链接到的文件属主匹配时,允许访问
    None:都不启用
  AllowOverride
    None:这个代表是否允许覆盖针对每目录的具体配置,消耗资源,不启用
  Order:基于ip的检查顺序
    order allow,deny:白名单
    order deny,allow:黑名单  
      allow from  192.168.1.1
      deny from  192.168.0.0/24 

12.定义默认主页面
  DirectoryIndex  index.html  index.htm   从左到右匹配

13.日志设定
  ErrorLog logs/error_log  :错误位于/var/log/httpd下
  LogLevel warn   :日志级别,比warn高的级别都记录

  CustomLog logs/access_log combined:访问日志,combined代表格式
  LogFormat  “ ********** ”  combined  :代表这种日志具体记录什么
      %h:客户端ip地址
      %l:远程登录名,-表示没有  
      %u:用户认证名,-表示没有
      %t:服务器端收到请求时的时间
      %r:请求报文首行信息
      %>s:响应状态码
      %b:响应报文的大小,单位字节,不包括首部
      %{Referer}i:从哪个页面跳转过来的
      %{User-Agent}i:发出请求用到的应用程序。(浏览器)
      其他在Apache官方文档

14.路径别名

  Alias  /URL/  "/PATH/TO/SOMEDIR":前面要是文件,后面也得是文件。前面要是目录,后面也得是目录

15.设定默认字符集

  AddDefaultCharset  UTF-8

16.基于用户的访问控制

  认证质询:www-authenticate,响应吗为401,拒绝客户端请求,并说明要求客户端提供账号和密码。
  认证:authorization,客户端用户填入账号和密码后再次发送请求报文,认证通过,则服务器发送响应的资源
  安全域:需要用户认证号方能访问的路径

  basic认证:
    (1)基于用户进行认证
      <Directory " ">
         Options None
         AllowOverride None
         AuthType Basic
         AuthName "STRING"
         AuthUserFile "密码文件"
         Require user  user1 user2      :这个文件中允许哪些用户登录
         (Require valid-user   允许所有用户登录)
      </Directory>
    (2)提供账号和密码存储文件
       htpasswd [options] passwordfile username:命令添加用户。
        -b:在命令行中直接指定用户密码
        -c 路径:指定密码文件存储路径,只有第一次用到
        -m:采用md5方式加密密码
        -s:采用SHA方式加密密码
        -D:删除用户
    
(3)基于组进行认证

      <Directory " ">
         Options None
         AllowOverride None
         AuthType Basic
         AuthName "STRING"
         AuthUserFile "密码文件"
         AuthGroupFile “组存放路径”

         Require group  group1 group2 
      </Directory>
      组文件格式:每一行定义一个组   组名:user1 user2

17.虚拟主机,三种实现方案
  基于ip,port,hostname。虚拟主机和中心主机不能同时使用,需要注释DocumentRoot

基于IP,HOST写法

<VirtualHost 10.10.1.1:80>
        ServerName www.a.com
        DocumentRoot "/www/a"    #这个目录要存在并且有文件
</VirtualHost>
<VirtualHost 10.10.1.2:80>
        ServerName www.b.com
        DocumentRoot "/www/b"    #这个目录要存在并且有文件
</VirtualHost>

基于端口,HOST写法

<VirtualHost 10.10.1.1:80>
        ServerName www.a.com
        DocumentRoot "/www/a"    #这个目录要存在并且有文件
</VirtualHost>
<VirtualHost 10.10.1.1:8080>                 #监听8080端口要在主配置文件中填写Listen 8080
        ServerName www.b.com
        DocumentRoot "/www/b"    #这个目录要存在并且有文件
</VirtualHost>    

基于主机名,HOST写法

NameVirtualHost  10.1.1.1:80                 #启用虚拟主机,
<VirtualHost 10.10.1.1:80>
        ServerName www.a.com
        DocumentRoot "/www/a"    #这个目录要存在并且有文件
</VirtualHost>
<VirtualHost 10.10.1.1:80>                
        ServerName www.b.com
        DocumentRoot "/www/"    #这个目录要存在并且有文件
</VirtualHost>        

18.内置status页面,就是网页显示服务器状态,启用下面这项

  <Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 1.1.1.1
  </Location>

19.使用mod_deflate模块压缩页面优化传输速度

 节约带宽,消耗资源,老版本浏览器不支持,适合压缩的资源为文件
  SetOutputFilter DEFLATE   开启压缩功能

 20.https

  SSL会话建立的过程(SSL会话基于IP地址,所有单IP主机上只能使用一个https主机)
  (1)客户端发送可供选择的加密方式,并向服务器请求证书
  (2)服务器端发送证书以及选定的加密方式给客户端
  (3)证书验证
    (a)验证证书来源的合法性,用CA的公钥解密证书上的数字签名
    (b)验证证书内容的合法性
    (c)检查证书的有效期
    (d)检查证书是否被吊销
    (e)证书中拥有者的名字应该与目标主机要一致
  (4)客户端生成临时会话秘钥(对称秘钥),并使用服务器端的公钥加密此数据发送给服务器,完成秘钥交换
  (5)服务器用此秘钥加密用户请求的资源,响应给客户端

 21.配置httpd支持https

  (1)为服务器申请数字证书
  (2)配置httpd支持使用ssl,及使用的证书

首相将ssl模块安装好
[root@localhost httpd]# yum install mod_ssl -y
之后去编辑ssl的配置文件
[root@localhost httpd]# cat conf.d/ssl.conf | grep -v "^# .*"
Listen 443 https   #监听端口
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout  300
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random  512
#SSLRandomSeed connect file:/dev/random  512
#SSLRandomSeed connect file:/dev/urandom 512
SSLCryptoDevice builtin
#SSLCryptoDevice ubsec
<VirtualHost _default_:443>     
#DocumentRoot "/var/www/html"       #这里需要取消注释,将主页设置好
#ServerName www.example.com:443     #主机名也要设置
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log    #传输日志
LogLevel warn
SSLEngine on                       #开启SSL功能  
SSLProtocol all -SSLv2 -SSLv3      #支持哪些协议版本 
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA   #支持哪些加密方式
#SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5  
#SSLHonorCipherOrder on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt  #证书文件
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key  #与上面证书匹配的私钥
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
#SSLVerifyClient require     #是否验证客户端证书
#SSLVerifyDepth  10
#<Location />
#SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#</Location>
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

  (3)测试基于https访问相应的主机

 

转载于:https://www.cnblogs.com/forlive/p/8947627.html

HTTP(超文本传输协议)是一种用于传输超媒体文档(例如HTML)的应用层协议。HTTPS(安全套接字层超文本传输协议)是HTTP的安全版本,通过使用SSL / TLS协议对数据进行加密和身份验证来保护数据传输的安全性。HTTPD是一个开源的Web服务器软件,它是Apache Web服务器的一部分,用于处理HTTP请求。以下是关于HTTPS和HTTPD的一些介绍和演示: 1. HTTPS的工作原理: HTTPS使用SSL / TLS协议对数据进行加密和身份验证。当客户端向服务器发送HTTPS请求时,服务器会将其公钥发送给客户端。客户端使用该公钥加密数据并将其发送回服务器。服务器使用其私钥解密数据并将其发送回客户端。这样,数据在传输过程中得到了保护。 2. HTTPD的安装和配置: 在CentOS 6上安装httpd2.2,可以使用以下命令: ``` sudo yum install httpd ``` 安装完成后,可以使用以下命令启动httpd服务: ``` sudo service httpd start ``` httpd的配置文件位于/etc/httpd/conf/httpd.conf。可以使用文本编辑器打开该文件并进行配置更改。例如,可以更改服务器的默认端口号,更改文档根目录等。 3. HTTPS的配置: 要在httpd中启用HTTPS,需要安装mod_ssl模块。可以使用以下命令在CentOS 6上安装mod_ssl: ``` sudo yum install mod_ssl ``` 安装完成后,可以在/etc/httpd/conf.d/ssl.conf中找到HTTPS的配置文件。该文件已经加载了mod_ssl模块,并监听443端口。可以在该文件中进行更改,例如更改SSL证书的位置和名称等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值