一:https简介: http传输协议传输数据是以明文的方式传送的,所以用户的任何数据封包都可能被监听窃取,为了提高系统的安全性,需要用到https协议,这样方式采用了 ssl(安全套接字层)加密机制。ssl利用非配对的key pair(公钥和私钥)来组成密钥,然后使用公钥加密后传输,目标主机再以私钥来解密,这样在internet 上传输的数据为密文,这些数据就相对安全。要使用安全协议,www服务器就必须要启动https传输协议,而浏览器必须在网址列输入https://开头的网址, 两者才能够进行沟通和联机。 二:CA介绍: CA是一个公认的公正单位,用户可以向其注册一个public key,客户端浏览器在浏览资源时,会主动的向CA单位确认该public key是否为合法注册过的,如 果是则该次联机才会建立,如果不是,浏览器就会发出警告信息。 三:web服务器类型: www服务器的类型有www平台和网页程序语言与数据库(lamp)。而目前www服务器软件主要有apache和iis。apache是自由软件,可以在任何操作系统上 安装,iis是windows下的,仅能在windows操作系统上安装与执行。 案例一:在Linux上安装apache,建立openCA向服务器颁发证书,实现客户端使用https向web服务器的请求。 一:架构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 #编辑该文家如图: [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表示输出 如图: 二:配置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 [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服务器,如图: [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 #编辑该文件,如图: 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服务器的端口是否启动 [root@localhost pki]# vim /var/www/html/index.html #编辑页面如图: [root@localhost pki]# service httpd restart 4:用windows xp主机进行测试。查看https是否能用: 5:[root@localhost conf.d]# vim ssl.conf #如图: [root@localhost pki]# service httpd restart 6: 查看证书的颁发机构: 7:上一步骤中,显示“安全证书上的名称无效,或者与站点名称不匹配”,可以做如下修改: 然后使用主机名称登陆: 案例二:建立三个站点,基于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 ,如图: [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 #编辑该文件,如图: 二:创建基于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 #修改配置文件如图: 测试:站点主页: 测试:tec站点:监听443端口 测试:mkt站点:监听443端口
该贴已经同步到 qingmosk的微博 |