Linux下使用https访问站点

一:https简介:

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

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

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

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

Linux下使用https访问站点

二:CA介绍:

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

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

三:web服务器类型:

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

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

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

Linux下使用https访问站点 

一:架构CA服务器:

1:[[email protected] ~]# mkdir /mnt/cdrom

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/

[[email protected] ~]# cd /mnt/cdrom/Server/

[[email protected] Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm

2:[[email protected] Server]# cd /etc/pki/

[[email protected] pki]# vim tls/openssl.cnf         #编辑该文家如图:

Linux下使用https访问站点

Linux下使用https访问站点

Linux下使用https访问站点 

[[email protected] CA]# mkdir crl           #放置证书吊销列表

[[email protected] CA]# mkdir certs         #已经发行过的证书存放的位置

[[email protected] CA]# mkdir newcerts          #新发行的证书存放位置

[[email protected] CA]# touch serial         #颁发证书的初始值

[[email protected] CA]# echo "01">serial         #将01赋予serial,作为初始值

[[email protected] CA]# touch index.txt         #数据库的索引文件

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

[[email protected] CA]# chmod 600 private/cakey.pem           #将cakey.com文件设置为600

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

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

Linux下使用https访问站点

二:配置web服务器:

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

[[email protected] pki]# cd /etc/httpd/certs/        

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

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

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

件叫httpd.csr

Linux下使用https访问站点

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

httpd.cert

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

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

Linux下使用https访问站点

[[email protected] ~]# cd /mnt/cdrom/Server/

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

[[email protected] Server]# cd /etc/httpd/conf.d/   

[[email protected] conf.d]# cp -p ssl.conf ssl.conf.bak           #将ssl.conf文件备份一下  

[[email protected] conf.d]# vim ssl.conf            #编辑该文件,如图:

Linux下使用https访问站点

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

[[email protected] conf.d]# service httpd restart

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

Linux下使用https访问站点

[[email protected] pki]# vim /var/www/html/index.html            #编辑页面如图:

Linux下使用https访问站点

[[email protected] pki]# service httpd restart

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

Linux下使用https访问站点 

Linux下使用https访问站点 

5:[[email protected] conf.d]# vim ssl.conf      #如图:

Linux下使用https访问站点

[[email protected] pki]# service httpd restart

6:

Linux下使用https访问站点

Linux下使用https访问站点

查看证书的颁发机构:

Linux下使用https访问站点

Linux下使用https访问站点

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

Linux下使用https访问站点

然后使用主机名称登陆:

Linux下使用https访问站点

Linux下使用https访问站点

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

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

1:[[email protected] ~]# mkdir /mnt/cdrom/

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/

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

[[email protected] ~]# cd /etc/httpd/certs111/              

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

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

Linux下使用https访问站点

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

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

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

[[email protected] certs111]# cd /etc/httpd/conf.d/           

[[email protected] conf.d]# vim ssl.conf               #编辑该文件,如图:

Linux下使用https访问站点

Linux下使用https访问站点

Linux下使用https访问站点

Linux下使用https访问站点

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

1:[[email protected] ~]# cd /mnt/cdrom/Server/

[[email protected] Server]# ifconfig eth0:1 192.168.101.36                #为网卡eth0添加ip地址

[[email protected] Server]# ifconfig eth0:2 192.168.101.46                #为网卡eth0添加ip地址

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

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

[[email protected] www]# vim tec/index.html        #编辑网页

[[email protected] www]# vim mkt/index.html

[[email protected] www]#vim /etc/httpd/conf/httpd.conf              #修改配置文件如图:

Linux下使用https访问站点

Linux下使用https访问站点

Linux下使用https访问站点 

测试:站点主页:

Linux下使用https访问站点

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

Linux下使用https访问站点

Linux下使用https访问站点 

Linux下使用https访问站点

Linux下使用https访问站点

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

Linux下使用https访问站点

Linux下使用https访问站点

Linux下使用https访问站点 

Linux下使用https访问站点










本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/968688,如需转载请自行联系原作者