一:https简介:

http传输协议传输数据是以明文的方式传送的,所以用户的任何数据封包都可能被监听窃取,为了提高系统的安全性,需要用到https协议,这样方式采用了

ssl(安全套接字层)加密机制。ssl利用非配对的key pair(公钥和私钥)来组成密钥,然后使用公钥加密后传输,目标主机再以私钥来解密,这样在internet

上传输的数据为密文,这些数据就相对安全。要使用安全协议,www服务器就必须要启动https传输协议,而浏览器必须在网址列输入https://开头的网址,

两者才能够进行沟通和联机。

p_w_picpath

二:CA介绍:

CA是一个公认的公正单位,用户可以向其注册一个public key,客户端浏览器在浏览资源时,会主动的向CA单位确认该public key是否为合法注册过的,如

果是则该次联机才会建立,如果不是,浏览器就会发出警告信息。

三:web服务器类型:

www服务器的类型有www平台和网页程序语言与数据库(lamp)。而目前www服务器软件主要有apache和iis。apache是自由软件,可以在任何操作系统上

安装,iis是windows下的,仅能在windows操作系统上安装与执行。

案例一:在Linux上安装apache,建立openCA向服务器颁发证书,实现客户端使用https向web服务器的请求。

p_w_picpath 

一:架构CA服务器:

1:[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm

2:[root@localhost Server]# cd /etc/pki/

[root@localhost pki]# vim tls/openssl.cnf         #编辑该文家如图:

p_w_picpath

p_w_picpath

p_w_picpath 

[root@localhost CA]# mkdir crl           #放置证书吊销列表

[root@localhost CA]# mkdir certs         #已经发行过的证书存放的位置

[root@localhost CA]# mkdir newcerts          #新发行的证书存放位置

[root@localhost CA]# touch serial         #颁发证书的初始值

[root@localhost CA]# echo "01">serial         #将01赋予serial,作为初始值

[root@localhost CA]# touch index.txt         #数据库的索引文件

[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem         #利用1024的非对称加密算法rsa,算出一个密钥放置在cakey.com文件中

[root@localhost CA]# chmod 600 private/cakey.pem           #将cakey.com文件设置为600

[root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650      #利用自己的私钥为自己(CA服务器)产

生一个证书叫cacert.pem。-x509表示证书类型,证书有效时间3650天,-out表示输出     如图:

p_w_picpath

二:配置web服务器:

1:[root@localhost pki]# mkdir -pv /etc/httpd/certs           #创建一个存放私钥,证书请求,申请证书的文件

[root@localhost pki]# cd /etc/httpd/certs/        

[root@localhost certs]# openssl genrsa 1024 >httpd.key         #使用长度为1024的非对称加密算法rsa,重定向到存放私钥的文件httpd.key中

[root@localhost certs]# chmod 600 httpd.key               #修改httpd.key的权限为600,只有当前用户为可读可写,组用户及其他用户都无任何权限

[root@localhost certs]# openssl req -new -key httpd.key -out httpd.csr            #利用存放私钥的文件httpd.key请求得到一个证书请求,请求产生的文

件叫httpd.csr

p_w_picpath

[root@localhost certs]# openssl ca -in httpd.csr -out httpd.cert  #利用ca产生一个证书,请求文件是当前目录下的httpd.csr,申请一个证书

httpd.cert

[root@localhost certs]# chmod 600 *          #将所有文件的权限改为600,只允许当前用户为可读可写,组用户及其他用户都无任何权限

2:[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo           #编辑yum服务器,如图:

p_w_picpath

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# yum install mod_ssl       #使用yum安装httpds和ssl结合的模块文件mod_ssl

[root@localhost Server]# cd /etc/httpd/conf.d/   

[root@localhost conf.d]# cp -p ssl.conf ssl.conf.bak           #将ssl.conf文件备份一下  

[root@localhost conf.d]# vim ssl.conf            #编辑该文件,如图:

p_w_picpath

3:[root@localhost conf.d]# service httpd configtest            #检查httpd配置文件的语法

[root@localhost conf.d]# service httpd restart

[root@localhost conf.d]# netstat -tupln |grep httpd          #查看http服务器的端口是否启动

p_w_picpath

[root@localhost pki]# vim /var/www/html/index.html            #编辑页面如图:

p_w_picpath

[root@localhost pki]# service httpd restart

4:用windows   xp主机进行测试。查看https是否能用:

p_w_picpath 

p_w_picpath 

5:[root@localhost conf.d]# vim ssl.conf      #如图:

p_w_picpath

[root@localhost pki]# service httpd restart

6:

p_w_picpath

p_w_picpath

查看证书的颁发机构:

p_w_picpath

p_w_picpath

7:上一步骤中,显示“安全证书上的名称无效,或者与站点名称不匹配”,可以做如下修改:

p_w_picpath

然后使用主机名称登陆:

p_w_picpath

p_w_picpath

案例二:建立三个站点,基于ip地址的虚拟主机,主站点使用http访问,技术部tec和市场部mkt使用https访问。需要为tec和mkt向CA服务器请求两个证书。

一:首先从CA服务器上申请证书:(此案例需要申请一个证书,另外一个证书使用案例一的)

1:[root@localhost ~]# mkdir /mnt/cdrom/

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

[root@localhost ~]# mkdir /etc/httpd/certs111        #创建一个存放私钥,证书请求,申请证书的目录

[root@localhost ~]# cd /etc/httpd/certs111/              

[root@localhost certs111]# openssl genrsa 1024 >httpd.key111           #利用1024为非对称加密算法rsa,得到一个私钥,存放在httpd.key111文件中

[root@localhost certs111]# openssl req -new -key httpd.key111 -out httpd.csr111         #利用存放私钥的文件求httpd.key111请得到一个证书请求,请求产生的文件叫httpd.csr111   ,如图:

p_w_picpath

[root@localhost certs111]# openssl ca -in httpd.csr111 -out httpd.cert111            #利用ca产生一个证书,请求文件是当前目录下的httpd.csr111,申请一个证书httpd.cert111

[root@localhost certs111]# chmod 600 *          #将所有文件的权限改为600,只允许当前用户为可读可写,组用户及其他用户都无任何权限

[root@localhost certs111]# yum install mod_ssl           #使用yum安装httpds和ssl结合的模块文件mod_ssl

[root@localhost certs111]# cd /etc/httpd/conf.d/           

[root@localhost conf.d]# vim ssl.conf               #编辑该文件,如图:

p_w_picpath

p_w_picpath

p_w_picpath

p_w_picpath

二:创建基于ip地址的虚拟主机:

1:[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# ifconfig eth0:1 192.168.101.36                #为网卡eth0添加ip地址

[root@localhost Server]# ifconfig eth0:2 192.168.101.46                #为网卡eth0添加ip地址

[root@localhost www]# mkdir tec                #创建目录tec,用于存放tec站点的网页

[root@localhost www]# mkdir mkt               #创建目录mkt,用于存放mkt站点的网页

[root@localhost www]# vim tec/index.html        #编辑网页

[root@localhost www]# vim mkt/index.html

[root@localhost www]#vim /etc/httpd/conf/httpd.conf              #修改配置文件如图:

p_w_picpath

p_w_picpath

p_w_picpath 

测试:站点主页:

p_w_picpath

测试:tec站点:监听443端口

p_w_picpath

p_w_picpath 

p_w_picpath

p_w_picpath

测试:mkt站点:监听443端口

p_w_picpath

p_w_picpath

p_w_picpath 

p_w_picpath