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平台进行开发,确实要更方便和高效,我经过自己的学习消化,现在将自己的理解的几点总结下来: Linux哲学思想的几句话,简洁的阐明了linux系统的特点。其中一切都是一个文件这句话特别精辟,在实际学习和操作linux系统之后,更是深刻体会到了这句话的内涵,感受颇深。它具体指明了…

    Linux干货 2018-03-16
  • egrep及文本处理工具十三道实例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    2018-03-20
  • 第二周作业

    第一、文件管理类命令     cp、mv、rm                  cp命令:copy 源文件;目标文件;     &nbsp…

    Linux干货 2016-12-12
  • 软件安装与管理–rpm、yum

    一、rpm包管理器     1、介绍rpm        在linux系统中,服务是要通过程序来提供的,通过调用API接口编写好之后的源码包文件对于普通用户来说,安装起来较为繁琐。于是人们将源码在编译安装的环境下制作了更加高级的rpm包,它的最大特点是避免了对原软件包的编译安装,以更加简便…

    Linux干货 2016-08-22
  • Nginx反向代理https,提供PhpMyAdmin

    准备工作:主机1、双网卡:外–172.16.252.187  内–192.168.42.140 主机2:192.168.42. 145 主机3:172.16.251.112 主机4:192.168.42.141 在主机2上:     安装httpd  yum  install…

    2017-07-01
  • vim 常见用法、计划任务和脚本初探

    vim的常用方法 gg:跳至首行 G:跳至魔行 dd:删除光标所在行 ndd:删除光标及以下(n-1)行 yy:复制光标所在行 p:把复制行粘贴在光标下一行 P:粘贴在上一行 u:取消上一步操作 /string:查找关键字 n:往下查询 N:往上查询 %s/string1/string2/:把string1替换为string2,后面加g表示全局替换 set&…

    Linux干货 2016-12-04

评论列表(1条)

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

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