web 服务进阶 httpd配置成https

web服务进阶 自建CA/https详解

一、SSL与https

1、引言

我们网上购物、网上订票,以及使用支付宝支付过程中都会在网上直接输入账号和密码。这些信息都是非常重要的,如何才能在输入的过程中,不被别人看见和窃取,就需要对你输入的信息进行加密处理。

早期的两主机通信之间是没有加解密程序,后来就在传输层与应用层之间加了一个SSL库,完成加密解密功能。

web 服务进阶  httpd配置成https

2、身份认证是怎么实现的?

A主机给B主机发了一个很重要的文件,B主机是怎么知道这个文件是A发的呢,万一是不法分子小C的阴谋,那我该不该相信这个信息呢?所以采用下面一种策略

首先发送方用自己的私钥加密数据特征码,接收方用对方的公钥去解密,如果接的开,就说明是对方发送的,密钥是成对出现的,私钥只有发送方自己有。其中发送方用自己的私钥加密数据的结果就叫数据签名。就相当于盖个章,这个东西是我的了。

3、加密过程:A发送给B信息

(1)A生成一组数据,为了保证数据安全保密的送给B,A先用单向加密算法计算出这段数据的特征码

(2)A会用自己的私钥加密这段特征码并将结果覆加在数据后面。

(3)A生成了一个临时的对称密钥,并使用这个对称密钥加密这整段数据。

(4)S会获取到B的公钥,并使用对方的公钥加密刚才那个对称密钥并覆加到整个后面,然后发送到B进行解密。

4、解密过程:B来解密

(1)B拿到报文以后,先用自己的私钥去解密这段加密的对称私钥

(2)用对称密钥解密整段加密的内容

(3)用A的公钥去解密特征码,能解密,A的身份得到验证

(4)在用同样的加密对称算法,去计算这段数据的特征码并与解密出来的进行比较,如果相同,数据完整性得到验证。

5、这中间缺一个环节,就是CA,帮助通信双方确认对方身份是否真伪。双方通信时要商量好:

(1)把CA颁发的公钥证书给我

(2)商议好用哪种方式加密

(3)B拿到A的公钥后要验证

6、ssl与http的关系

http本身不具备加密解密功能,所以通过ssl进行加密。使用ssl的http通信叫做https通信。

web 服务进阶  httpd配置成https


二、实例演示

1、自建CA(A主机:ip为192.168.1.118)

(1)生成私钥文件 mkdir -p /etc/pki/CA/private #创建私钥保存的目录

(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

ll /etc/pki/CA/private/ # 私钥只能自己保存,对保密性要求高

web 服务进阶  httpd配置成https

(2)生成自签证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out cacert.pem -days 7300

web 服务进阶  httpd配置成https

(3)为CA提供所需的目录和文件

touch /etc/pki/CA/index.txt # 创建数据库文件

echo 01 > /etc/pki/CA/serial # 创建序列号文件并给明第一个证书的序列号码

ll /etc/pki/CA

web 服务进阶  httpd配置成https

至此,私有CA创建完毕。

2、证书申请:(在B主机上:ip:192.168.1.109)

(1)在证书申请的主机上生成私钥

cd /etc/httpd/

mkdir ssl #创建保存私钥的目录

cd ssl

(umask 077;openssl genrsa -out httpd.key 2048) #生成私钥

ll

web 服务进阶  httpd配置成https

(2)生成证书签署请求

openssl req -new -key httpd.key -out httpd.csr -days 365 # 在本地生成

web 服务进阶  httpd配置成https

(3)把请求发送给CA

scp httpd.csr root@192.168.1.118:/etc/pki/CA # 192.168.1.118为CA主机

web 服务进阶  httpd配置成https

(4)CA签发证书(在CA192.168.1.118主机上操作),cd到 /tmp下

openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

web 服务进阶  httpd配置成https

cat /etc/pki/CA/index.txt #查看第一个签发的证书

web 服务进阶  httpd配置成https

(5)把签署好的证书发还给请求者

cd /etc/pki/CA

scp certs/httpd.crt root@192.168.1.109:/etc/httpd/ssl/

web 服务进阶  httpd配置成https

在请求主机上查看,证书已经颁发好了

web 服务进阶  httpd配置成https

3、配置httpd支持使用ssl,及使用的证书;

(1) yum install -y mod_ssl

(2)修改配置文件: vim /etc/httpd/conf.d/ssl.conf

<VirtualHost 192.168.1.109:443>
        ServerName www.a.com
        DocumentRoot /www/a.com/htdocs
        SSLengine ON
        SSLprotocol ALL -sslv2 -sslv3
        SSLcertificatefile /etc/httpd/ssl/httpd.crt
        SSLcertificatekeyfile /etc/httpd/ssl/httpd.key
</VirtualHost>

(3)配置虚拟主机vim /etc/httpd/conf.d/virt.conf

<VirtualHost 192.168.1.109:80>
              ServerName www.a.com
              DocumentRoot /www/a.com/htdocs
              <Directory "/www/a.com/htdocs">
                      Options None
                      AllowOverride None
                      Require all granted
</Directory>

检查

web 服务进阶  httpd配置成https

测试如下:

web 服务进阶  httpd配置成https

ok了,还要把CA证书下载到windows导入浏览器。就可以了。

原创文章,作者:N24_yezi,如若转载,请注明出处:http://www.178linux.com/63170

(0)
N24_yeziN24_yezi
上一篇 2016-12-10 20:03
下一篇 2016-12-11 10:03

相关推荐

  • 马哥教育网络班22期+第1周课程练习

    一、描述计算机的组成及其功能。 组成:CPU (运算器+控制器),存诸器(内存与硬盘),输入设备,输出设备。 运算器:对数据进行加工处理的部件(包括算述运算与逻辑运算)。 控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各部件协调的,一步步的完成各种操作。 存储器:计算机记忆或暂存数据的部件 输入设备:人机接口,负责输入信息(数据与指令)转成计算机…

    Linux干货 2016-08-15
  • 马哥教育网络班22期+第六周课程练习

    vim编辑器的使用总结    vim编辑器是模式化的全屏文本编辑器,有三种基本模式:        编辑模式        输入模式   &…

    Linux干货 2016-10-24
  • keepalived +LVS DR 双主互备模型实验

    keepalived +LVS DR 双主互备模型实验  实验环境介绍     操作系统:DR:centos 7.2 两个节点,都安装keepalived             &nbsp…

    Linux干货 2016-03-09
  • LAMP部署之NFS共享网络存储

    LAMP部署之NFS共享网络存储 架构图: 说明:     当一个网站的访问量上来之后,一台WebServer服务器无法应付那么高的并发,需要横向扩展Web服务器数量,     当我们访问网页,向Web服务器请求资源时,资源主要分为静态资源和动态资源(程序处理),  &…

    Linux干货 2016-06-20
  • shell编程之循环

           当需要重复运行特定的指令以满足系统管理工作需要时,条件判断语句if、case并不能很好地提供支撑,shell提供了for、while、until循环语句来满足此需求。 一、for循环语句        for循环用于重复整个对象列表,依次遍历对列…

    Linux干货 2016-08-18
  • 三次握手,四次挥手

    TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。 在谈及TCP建立连接和释放连接过程,先来简单认识一下TCP报文段首部格式的的几个名词(这里只是简单说明,具体请查看相关教程)下面是TCP报文格式图:     序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的…

    2017-09-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-14 14:21

    博客完成的非常好,有图有真现,有实验结果。加油!