设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2223|回复: 1
收起左侧

Linux下使用https访问站点

[复制链接]
发表于 2013-6-13 15:29:21 | 显示全部楼层 |阅读模式
一: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的微博
发表于 2013-10-25 12:09:10 | 显示全部楼层
不错!!!不错!!!顶一个!!!!!
沙发 2013-10-25 12:09:10 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-26 14:23 , Processed in 0.061760 second(s), 13 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表