Linux实现https方式访问站点
超文本传送协议(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方式访问站点的更多相关文章
- 如何限制用户仅通过HTTPS方式访问OSS?
一.当前存在的问题 当前OSS支持用户使用HTTPS/HTTP协议访问Bucket.但由于HTTP存在安全漏洞.大型企业客户都要求使用HTTPS方式访问OSS,并且拒绝HTTP访问请求. 目前OSS可 ...
- Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站
http://www.cnblogs.com/zhongweiv/archive/2013/01/07/https.html 配置环境 了解HTTPS 配置CA证书服务器 新建示例网站并发布在IIS ...
- IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站
配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 了解HTTPS 为什么需要 HTTPS ? ...
- 微信公众平台HTTPS方式调用配置免费https服务器
微信公众平台数据传输安全,提高业务安全性,公众平台将不再支持HTTP方式调用.避免影响正常使用中含有HTTP方式调用的服务,请开发者尽快调整,将现有通过HTTP方式调用的切换成HTTPS调用,平台将于 ...
- 为阿里云域名配置免费SSL支持https加密访问简单教程
阿里云之前有免费ssl入口申请,现在已经关闭了.那么现在怎么为自己的域名配置https呢? 首先打开阿里云域名控制台,如以下界面.(这里暂且用我的这个域名讲解吧) 如上图点击ssl证书,点击单域名免 ...
- Tomca7t服务器 配置HTTP和HTTPS 同时访问
(首先你要有 ssl 证书 ,我是阿里的 ) 查看申请ssl证书(https://www.cnblogs.com/lxf-mw/p/14261303.html) 一.下载 tomcat证书(两个文件) ...
- 如何让springboot打包的项目部署在阿里云上使用https和http方式访问
前言 问题描述:怎么让springboot部署在服务器上使用https协议方式访问我们的接口或者域名,目的是某些平台请求的是https协议,而不是https 部署环境:阿里云 centos7服务器,s ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- Linux 如何设置只允许域名访问站点而禁止IP访问站点
最近在论坛里看到有人问到 Linux 如何设置只允许域名访问站点而禁止IP访问站点的问题,之前自己也用过这个功能,可以防止别人用 IP 地址来访问到自己的网站,下面我就我自己的环境给出解决方法,我用的 ...
随机推荐
- 纯HTML5+CSS3制作生日蛋糕
以一个前端开发的身份绘制一个简单的蛋糕庆祝一下今天这个好日子吧,程序员庆生的乐趣与哀愁啊.写的比较简陋,感兴趣的看一下吧. 先发个效果图吧 蛋糕分为三个部分,底部蛋糕,顶层蛋糕和蜡烛部分.HTML的布 ...
- 商业智能SAAS走向中小企业
20多年前,Gartner提出了商业智能的概念,并将其定义为“一类由数据仓库.查询报表.数据分析.数据挖掘等部分组成的,以帮助企业决策的技术及应用”.从技术上讲,商业智能是数据仓库.OLAP和数据挖掘 ...
- 在其他系统Iframe中显示SharePoint 页面
前段时间在做一个项目,要求将SharePoint 的 OWA(Office Web Apps)中的文档显示页面嵌入到另外一个OA系统中,提供给用户可以通过浏览器查看SharePoint文档的能力. 嵌 ...
- Android-配置文件中设置“android:clickable="false"无效的原因及解决办法
开发中遇到的问题:要实现一个button初始为不可点击,于是在配置文件中设置了android:clickable="false"运行后发现还是可以点击,于是写在了Activity中 ...
- idea使用优化常用快捷键设置
1. 界面美观 1.1. 主题 1.2. 改Project面板大小 2. 快捷键 2.1智能提示 2.2常用快捷键 3.编辑器调整 3.1 代码提示忽略大小写 3.2 显示行号 3.3 优化自动导入 ...
- 一个C语言问题
在这个题目中,你需要编写一个c++程序,要求输出以下内容:000000010010.....11101111(输出0到31的每个数的二进制表示,每行一个,前面的0也必须输出!) 1)部分代码已经为你完 ...
- MongoDB学习笔记——分片(Sharding)
分片(Sharding) 分片就是将数据进行拆分,并将其分别存储在不同的服务器上 MongoDB支持自动分片能够自动处理数据在分片上的分布 MongoDB分片有三种角色 配置服务器:一个单独的mong ...
- Win10系统旗舰版ghost版系统镜像下载
微软已经发布了Win10预览版10041快速版更新,但通过Windows更新的方式比较慢.现在微软官方已经发布Win10预览版10041的系统ISO镜像,还没更新这一版本的朋友可以使用该镜像进行更新. ...
- 【转】天啦噜!原来Chrome自带的开发者工具还能这么用!(提升JS调试能力的10个技巧)
天啦噜!原来Chrome自带的开发者工具还能这么用! (提升JS调试能力的10个技巧) Chrome自带开发者工具.它的功能十分丰富,包括元素.网络.安全等等.今天我们主要介绍JavaScript ...
- Oracle数据库语言——结构化查询语言SQL
一.数据定义语言DDL 1.创建表空间:CREAT TABLESPACE lyy DATAFILE 'C:/app/lyy.dbf' SIZE 10M;(创建一个10M的表空间,存放在C盘app文件夹 ...