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

相关推荐

  • Linux的硬链接与软链接

    Linux 的硬链接与软链接 文件由文件名与数据组成,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode…

    Linux干货 2016-10-25
  • 初识Linux

    在这篇文章中你讲看到如下内容: 1.       计算机的组成及功能; 2.       Linux发行版之间的区别和联系; 3.       Linux发行版的基础目录及功用规定…

    Linux干货 2016-12-01
  • 初识Nginx

    前言:   Nginx介绍:    Nginx(engine x)是由俄罗斯人logor sysoev研发的;官方网站:nginx.org;nginx是一个轻量级的高性能的web服务器和反向代理服务器;nginx本身一个处理静态资源的web服务器,但是通过加装fastcgi等模块,可是支持动态资源;可以为IMAP/POP3/SM…

    Linux干货 2015-06-23
  • 加密通讯过程

    一次加密通讯的过程 1、client_hello   客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下: 支持的最高TSL协议版本version,从低到高依次 SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,当前基本不再使用低于 TLSv1 的版本 客户端支持的加密…

    Linux干货 2017-02-07
  • linux分区管理工具—fdisk

    一、关于为什么要分区       (1)为了数据的安全:当文件系统只有一个分区时,如果遇到分区需要格式化的情况,则硬盘里的数据无法保留,而如果提前对硬盘做了分区那么就可以很好地额解决这个问题;       (2)为了提升效率:硬盘(这里单指机械硬盘)分为外圈和…

    Linux干货 2016-03-12
  • Linux的用户,组及文件权限管理

    Linux用户与组的创建,删除,属性修改,文件权限管理

    Linux干货 2018-02-24

评论列表(1条)

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

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