超文本传送协议(HyperText Transfer Protocol,HTML)是一种通信协议,它允许将超文本标记语言文档从web服务器传送到wel浏览器。

HTML的特点:

1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

客户端浏览器以https的方式访问web服务器的过程:

客户端通过https方式访问服务器全过程描述:

1.客户机通过https访问web服务器,web服务器向客户机出示自己的证书

2. 客户机验证证书的有效性,包括发证时间,发证机关,执行者标识。

3.如果客户机验证证书通过,客户机随机产生128位的key,再利用证书文件传递的public key对该随即key机进行加密。

4.加密后传送至服务器端,服务器再利用自己的public key 对加密的key进行解密,得到客户机的随机key值。

5.这时两端的key值相同,利用该key进行加密通讯。

linux下通过Apache  httpd软件实现https方式访问站点的实现:

1.由于案例最后要安装mod_ssl软件,而该软件具有依赖性,所以先配置yum(本地yum)。新建挂载点,挂载光盘,编辑/etc/yum.repos.d/rhel-debuginfo.repo

有关yum的详细配置请访问我的另一篇博文:http://jialiang10086.blog.51cto.com/4496483/960178

2.安装WWW服务器软件,在这里使用httpd-2.2.3-31.el5.i386.rpm,采用yum或者rpm安装

rpm -ivh httpd-2.2.3-31.el5.i386.rpm

yum install httpd

实现Apache 站点安全有三种方式:

a. 身份验证

b.来源控制

c.ssl安全套接字层

下面一一实现上述3种方式:

A.身份验证

3.编辑/etc/httpd/conf/httpd.conf 文件,修改第327行 :将AllowOverride None 改为AllowOverride all ;更改后才能使身份验证配置生效

4.上步中修改 AllowOverride all  是在  内,对应的是对访问/var/www/htm 目录内的网页时的主机进行身份验证。

在/var/www/htm 中产生一个隐藏文件.htaccess ,在此文件中写入验证规则

5.产生上步中的 .password文件,并创建账户user1 和 user2 。htpasswd [–c] .htpassword user1

6.切换到/var/www/html 产生网页文件,重启httpd服务

B.来源控制

通过控制允许哪些用户可以访问站点,哪些不能访问站点来实现来源控制的目的

Order allow,deny

Allow from all

7.设置只允许192.168.101.11主机访问该站点,设置完成后重启httpd服务

8.测试 ,ip为192.168.101.11主机可以访问该站点。

9.ip为192.168.101.12 主机无法访问该站点

C.安全套接字层ssl

搭建证书服务器CA

10.编辑文件/etc/pki/tls/openssl.cnf

将88行到90 行的match  改为optional ,否则将只有和CA在同一个国家、省份、组织的主机才能从CA获得证书

修改CA默认的名称选项,当向该CA提出证书申请时显示为默认。

11.根据openssl.cnf文件的说明,需要创建三个目录:certs  newcerts  crl 和两个文件:index.txt  serial

12.CA 证书服务器产生自己的私钥cakey.pem 。 openssl genrsa 1024 > private/cakey.pem

13.CA服务器根据自己的私钥产生自己的证书:openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650

该处的默认值即为第19步中修改的默认值

14.修改证书文件和私钥文件的权限为600

15.在WWW服务器的根目录/etc/httpd下新建文件夹certs,用来存放服务器的私钥,请求,以及证书

16.www服务器产生自己的私钥:openssl genrsa 1024 > httpd.key

17 根据私钥httpd.key 来产生请求文件:openssl req -new -key httpd.key -out httpd.csr

8.CA服务器根据请求文件颁发证书:openssl ca -in httpd.csr -out httpd.cert

19.修改证书文件和私钥文件的权限为600

现在www服务器已经有自己的证书和私钥了,当客户端浏览器通过https的方式访问该web服务器,则该服务器需要将证书显示到客户端浏览器,这需要ssl和httpd相结合

20.安装mod_ssl 模块:yum install mod_ssl

21.安装后,会在/etc/httpd/conf.d下产生文件ssl.conf文件

22编辑ssl.conf文件

23.重启httpd服务

24.测试,显示有两个问题:一是颁发证书的机构不被信任,二是证书上显示的名字和该主机访问的名字不一致

25.如果想要信任某个证书颁发机构,只需将该颁发机构的证书导入浏览器,但是点击查看证书,证书路径中不显示颁发机构的证书

26  继续修改ssl.conf,修改证书链

27.重启httpd服务,再次进行测试

28.点击查看证书,安装证书

29安装后可在浏览器中查看

30.再次差可能访问情况,显示只有名称无效

31.修改hosts文件,将192.168.101.250的对应的域名设置为www.zzu.edu.cn

32.最后一步,修改httpd.conf 文件,禁用80 端口,以后只用https的方式访问

重启httpd

补充案例---基于IP地址的虚拟主机

基于IP地址的虚拟主机

多个ip 多个名字 端口号80 多个站点

实验要求:

基于ip的虚拟主机,三个站点及其ip地址和站点主目录分别为:

192.168.101.250 www.cisco.com /var/www/html

192.168.101.251 tec.cisco.com /var/www/tec

192.168.101.252 mkt.cisco.com /var/www/mkt

要求 www.cisco.com 站点可通过http方式访问,tec.cisco.com 和 mkt.cisco.com 通过https的方式访问

1.安装dns服务器

rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

2.在/var/named/chroot/etc 下cp -p named.caching-nameserver.conf named.conf

3.编辑区域声明文件named.rfc1912.zones,声明区域cisco.com

4.切换到目录/var/named/chroot/var/named 下,cp -p localdomain.zone cisco.com.db

5.解析测试(如果在该dns服务器上测试,需要指明dns服务器地址/etc/resolv.conf 或setup)

6.安装httpd 服务器,安装证书服务器省略

7.修改httpd的配置文件httpd.conf

<VirtualHost 192.168.101.250:80>
ServerAdmin webmaster@sina.com
DocumentRoot /var/www/html
ServerName www.cisco.com
ErrorLog logs/www_error_log
CustomLog logs/www_access_log common
</VirtualHost>
<VirtualHost 192.168.101.251:80>
ServerAdmin webmaster@sina.com
DocumentRoot /var/www/tec
ServerName tec.cisco.com
ErrorLog logs/tec_error_log
CustomLog logs/tec_access_log common
</VirtualHost>
<VirtualHost 192.168.101.252:80>
ServerAdmin webmaster@sina.com
DocumentRoot /var/www/mkt
ServerName mkt.cisco.com
ErrorLog logs/mkt_error_log
CustomLog logs/mkt_access_log common
</VirtualHost>

8.创建www ,tec ,mkt 的站点主目录及网页文件

9.添加网卡,设置ip地址

10.测试访问三个站点

11.分别为三个站点新建目录用来存放各自的私钥文件。请求文件,以及证书文件。由于本实验不要求www主站点使用https方式访问,所以该站点不用申请证书

12. tec站点产生私钥文件tec_httpd.key

13. tec 站点根据自己私钥产生请求文件

14.CA服务器为tec站点颁发证书

15.同理产生mkt的私钥和请求,和证书

16. 修改ssl.conf 文件 ,当客户端访问不同的站点时,加载不同的证书

虚拟站点一,不使用https方式,所以此处端口为80;

虚拟站点二,使用https方式访问,端口号设置为443

该虚拟站点的证书文件、私钥文件、证书链位置,当客户端访问该站点时,将该证书发送给客户端

虚拟站点三,使用https方式访问,端口号设置为443

该虚拟站点的证书文件、私钥文件、证书链位置,当客户端访问该站点时,将该证书发送给客户端

17.编辑httpd.conf文件,该文件包含ssl.conf文件。

在此处,只监听192.168.101.250 的80 端口,如果直接写Linstn 80,则所有站点的80 端口都将开启,tec和mkt站点这

由于在ssl.conf中定义了虚拟站点,所以在httpd.conf文档的最后不用再写虚拟主机。

Linux实现https方式访问站点的更多相关文章

  1. 如何限制用户仅通过HTTPS方式访问OSS?

    一.当前存在的问题 当前OSS支持用户使用HTTPS/HTTP协议访问Bucket.但由于HTTP存在安全漏洞.大型企业客户都要求使用HTTPS方式访问OSS,并且拒绝HTTP访问请求. 目前OSS可 ...

  2. Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站

    http://www.cnblogs.com/zhongweiv/archive/2013/01/07/https.html 配置环境 了解HTTPS 配置CA证书服务器 新建示例网站并发布在IIS ...

  3. IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站

    配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 了解HTTPS 为什么需要 HTTPS ? ...

  4. 微信公众平台HTTPS方式调用配置免费https服务器

    微信公众平台数据传输安全,提高业务安全性,公众平台将不再支持HTTP方式调用.避免影响正常使用中含有HTTP方式调用的服务,请开发者尽快调整,将现有通过HTTP方式调用的切换成HTTPS调用,平台将于 ...

  5. 为阿里云域名配置免费SSL支持https加密访问简单教程

    阿里云之前有免费ssl入口申请,现在已经关闭了.那么现在怎么为自己的域名配置https呢? 首先打开阿里云域名控制台,如以下界面.(这里暂且用我的这个域名讲解吧)  如上图点击ssl证书,点击单域名免 ...

  6. Tomca7t服务器 配置HTTP和HTTPS 同时访问

    (首先你要有 ssl 证书 ,我是阿里的 ) 查看申请ssl证书(https://www.cnblogs.com/lxf-mw/p/14261303.html) 一.下载 tomcat证书(两个文件) ...

  7. 如何让springboot打包的项目部署在阿里云上使用https和http方式访问

    前言 问题描述:怎么让springboot部署在服务器上使用https协议方式访问我们的接口或者域名,目的是某些平台请求的是https协议,而不是https 部署环境:阿里云 centos7服务器,s ...

  8. 【转】Linux下nginx配置https协议访问的方法

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  9. Linux 如何设置只允许域名访问站点而禁止IP访问站点

    最近在论坛里看到有人问到 Linux 如何设置只允许域名访问站点而禁止IP访问站点的问题,之前自己也用过这个功能,可以防止别人用 IP 地址来访问到自己的网站,下面我就我自己的环境给出解决方法,我用的 ...

随机推荐

  1. Atitit.常见软件 数据 交换格式 标准

    Atitit.常见软件 数据 交换格式 标准 1. 常见的数据格式txt ,doc ,pic,music ,vodio1 2. 通用格式json yaml phpstr1 3. 专用格式1 4. 用户 ...

  2. 源码安装ipython,并在ipython中整合spark

    一.安装ipython 下载ipython, https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b9 ...

  3. 自定义母版页之列表过滤菜单位置issue fix

    问题描述: 自定义母版页,为了使左边导航和顶部导航位置不变(不滚动),将原本位于ribbon下方的#s4-workspace调整到左侧导航右边. <div id="s4-workspa ...

  4. iOS多线程之1.从Thread看多线程的生命周期

      Thread 是多线程中最容易理解,但是使用起来又是最麻烦的一种多线程方法.为什么说容易理解呢?一个NSThread的对象就是一条线程.使用起来麻烦是因为,需要我们自己管理线程的生命周期:创建线程 ...

  5. iOS Swift-控制流(The Swift Programming Language)

    iOS Swift-控制流(The Swift Programming Language) for-in 在Swift中for循环我们可以省略传统oc笨拙的条件和循环变量的括号,但是语句体的大括号使我 ...

  6. 使用adjacent_difference要注意的小问题

    adjacent_difference的源与目的地可以相同,这是在标准中说明的,所以我产生了疑问,会不会因为这样使用而改变了当前成员,而影响下一步计算呢,经试验,在vs2015里并不会. #inclu ...

  7. ORACLE回收站机制介绍

    回收站概念 从ORACLE 10g开始,引入了一个叫回收站(Recycle Bin)的概念.它的全称叫Tablespace Recycle Bin.回收站实际是一个逻辑容器(逻辑区域),原理有点类似于 ...

  8. ORA-01502: index ‘index_name' or partition of such index is in unusable state

    错误现象: 今天发布脚本时,一个表插入数据时报如下错误 ORA-01502: index ‘index_name' or partition of such index is in unusable ...

  9. Tornado框架简析

    Tornado是一款轻量级的Web服务器,同时又是一个开发框架.采用单线程非阻塞I/O模型(epoll),主要是为了应对高并发 访问量而被开发出来,尤其适用于comet应用. Tornado服务器3大 ...

  10. Linux下java进程CPU占用率高-分析方法

    今天登陆同事的一台gateway 开始以为hive环境登陆不了了,仔细一看看了下是因为机器很卡,我每次等几秒没登陆就ctrl+c了,看了下是有个java进程cpu:340.4%  mem:14.6%  ...