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

相关推荐

  • iptables防火墙

    Linux防火墙基础 在Internet中,企业通过架设各种应用系统来为用户提供各种网络服务,例如Web网站,电子邮件系统,FTP服务器,数据库系统等等,而防火墙就是用来保护这些服务器,过滤企业不需要的访问甚至是恶意的入侵。 Linux防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙。Linux防火墙体系基于内核编码实…

    Linux干货 2017-01-10
  • 第十一周作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 发送者:     1)使用单向加密算法提取要发送文件的特征码;     2)使用自己的私钥加密特征码并附加在数据后面;     3)生成用于对称加密的临时密码;     4)用此临时密钥加密数据和已经使用私钥加密后的特征码; &nb…

    2017-03-20
  • 马哥教育网络班20期-第三周课程作业

    Table of Contents 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers…

    Linux干货 2016-06-26
  • 十一.Linux博客-2016年8月14日if、case、find

    格式说明: 操作 概念 命令 说明及举例 十一.if、case、find if 单分支if开头+条件+then+fi结尾双分支 if else fi多分枝 if elif else fi case case $num in1|3|5)echo xxx;;2|4|5)echo yyy;;*)echo nullesac 多用于离散数值匹配 文件查找和压缩 文件系…

    Linux干货 2016-08-24
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。                 使用到命令chmod &nbsp…

    Linux干货 2017-02-02
  • Centos6.8 搭建LAMP平台

    Centos6.8 搭建LAMP平台 §·运行环境介绍 LAMP的运行环境介绍: L代表: Linux  Centos 6.8 A代表: apache  httpd-2.2.15-53.el6.centos.x86_64 M代表:MySQL  mysql-server-5.1.73-7.el6.x86_64 P代表: php &…

    Linux干货 2016-10-12

评论列表(1条)

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

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