网站开发需要多少钱怎样,html论坛源码,wordpress 微信连接,企业年金交了有好处吗一、CA简介 CA是什么#xff1f;CA是Certificate Authority的简写#xff0c;从字面意思翻译过来是凭证管理中心#xff0c;认证授权。它有点类似我们生活中的身份证颁发机构#xff0c;这里的CA就相当于生活中颁发身份证的机构。不同于生活中的颁发机构#xff0c;这里的…一、CA简介 CA是什么CA是Certificate Authority的简写从字面意思翻译过来是凭证管理中心认证授权。它有点类似我们生活中的身份证颁发机构这里的CA就相当于生活中颁发身份证的机构。不同于生活中的颁发机构这里的CA是给服务器颁发证书。颁发证书的目的同生活中的办理身份证的目的类似都是为了证明一件事生活中的身份证可以证明我们是一个合法的公民而服务器颁发证书的目的也是证明我们服务是一个合法的服务器换句话说就是有了证书我们就可以清楚知道我们访问的服务器到底是不是我们真正想访问的服务器。从而识别我们访问的服务器的真假。 2.中间人攻击 如上图所示我们在和对方服务器通信的过程存在着中间人攻击的情况。所谓中间人攻击就是攻击者站在通讯双方的中间对于客户端它充当着服务器的角色对于服务器端它又充当着客户端的角色。简单说它就是两边欺骗。当我们向服务器发起通信请求时中间人会截获我们发向服务器端的报文从而进行修改然后把修改后的报文发送给服务端服务端收到中间人篡改的数据报文进行响应把响应报文发送给中间人然后中间人再发给客户端。这样一个过程就是中间人攻击的过程。可以看到客户端服务端双方直接通信是不安全的。如上图所示通信双方交换密钥直接交换就存在中间人欺骗因为我们不能够确定远端服务器的真伪和客户端的真伪。为了解决这一问题由此衍生出CA。CA在这里的充当的角色相当于中间人角色不同的是CA是一个权威的中间人。它可以证明客户端和服务端的真伪。 众所周知常用的加密方式有三种单向加密对称加密和非对称加密。单向加密从字面意思理解就是一方加密在加密过程中不使用密钥我们把单向加密也叫不可逆加密通常用于验证文件的真假或者验证文件是否改动从而验证文件的完整性。常用的单向加密算法有md5,sha。对称加密讲的是加密和解密用的同一密钥。换句话说对称加密只有一个密钥只要拿到对应的密钥就可以解密。常用的对称加密有des。非对称加密讲的是公钥加密私钥解密私钥加密公钥解密且公钥和私钥是一对加密解密都需要的是一对密钥里的任意一个。这种加密比前两种更加安全和适用缺点是加解密大文件速度慢 了解了非对称加密的特性我们再来说说它的过程。通信双方要进行非对称加密通信前提是需要拿到对方的公钥私钥放在各自手里各自的公钥则存放在对方的手上。换句话讲客户端需要拿到服务端的公钥才能和服务端通信服务端需要拿到客户端的公钥才能主动和客户端通信。从而才可以实现非对称加密通信。那么客户端怎么得到服务端的公钥呢如果客户端直接向服务端发送公钥上面我们说过这种方式存在中间人攻击因为直接交换公钥是不都能确定对方身份的。这个时候就需要说说CA证书的作用了。 证书里面存放了申请证书机构服务器的公钥和CA的信息以及有效期。通讯双方在建立加密通信的时候需要验证证书的合法性从而实现验证身份的目的。通常情况我们要验证证书的合法性就需要证书颁发机构的公钥来对证书解密因为证书在颁发的时候里面的公钥是通过颁发机构的私钥对其进行加密的。只要我们能够用颁发机构的公钥解开证书那么就说明这个证书就是一个合法的证书至少它证明了这个证书是权威机构我们信任的CA颁发的。同理通信双方要进行加密通信也是通过证书来获取密钥的。具体过程是这样的客户端向服务端发起通信请求服务端发送证书给客户端客户端拿到证书进行解密如果能够用信任CA机构的公钥解开说明服务器发送过来的证书没有问题然后把服务端公钥给存起来。客户端有了服务端的公钥后就可以向服务端发送用服务端的公钥加密的数据了但是服务端没有客户端的公钥它不能够用自己的私钥来加密数据发送给客户端因为它的公钥是公开的不光客户端上有服务端的公钥中间人也有。所以为了确保数据的安全客户端需要随机生成一个密码然后通过服务器的公钥把随机生成的密码加密后发送给服务端服务端收到客户端发来的加密数据后用自己的私钥解开从而拿到客户端发来的随机密码有了这个随机密码后服务端就拿这个随机密码对称加密数据然后发送给客户端。客户端收到服务端发送过来的加密报文用刚才发送给服务端的随机密码解密从而得到真正的数据。后续双方就是通过这个随机密码来加密解密传输数据。这里还需要说明的是这个随机密码不是一直不变的每隔一段时间后客户端和服务端就会协商重复上面的过程生成新的随机密码进行加密解密通信。 从上面的通信过程我们可以知道证书的作用就是为了验证其服务器的真实合法性以及传输服务端的公钥的作用。而服务器的公钥就是用来客户端向服务端发送随机密码用来加密随机密码的作用从而实现只有服务端可以拿到这个随机密码的作用实现安全加密通信。 四、CA服务器的实现
1.系统默认安装好的
yum install -y openssl2、查看配置文件以及匹配策略
目录 /etc/pki/tls/openssl.cnf 文件3、创建CA自签名证书
3.1生成密钥 在192.168.6.129主机上模拟证书颁发机构[rootCentos7 CA]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)3.2、签发自签名证书
[rootCentos7 CA]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 1000填写对应的信息 颁发的证书为cacert.pem 3.3在CA目录下创建index.txt 创建对应的index.text文件 此文件用来记录申请的所有证书信息
[rootCentos7 CA]# touch index.txt3.4创建serial 0F 表示证书的编号 15
[rootCentos7 CA]# echo 0F /etc/pki/CA/serialCacert.pem 在linux 上是看不出里面的具体信息的需要将cacert.pem 文件传送到window桌面上并且改名为后缀为.crt
传送桌面
[rootCentos7 CA]# sz cacert.pem桌面预览效果图 4、在客户端创建证书申请 在192.168.6.130主机上模拟客户端创建证书申请
4.1 生成私钥信息
[rootCentos7 ~]# cd root/
[rootCentos7 ssl]# (umask 077;openssl genrsa -out /root/ssl/app.key 2048)4.2、生成证书申请文件
[rootCentos7 ssl]# openssl req -new -key app.key -out app.csr4.3、在192.168.6.130上生成的证书申请传回给192.168.6.129证书颁发机构
传送文件到129.168.6.129主机上
[rootCentos7 ssl]# scp /root/ssl/app.csr 192.168.6.129:/data/4.4颁发证书
[rootCentos7 data]# openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt -days 365说明在跟客户端颁发证书的时候需要依赖两个文件/etc/pki/CA/index.txt和/etc/pki/CA/serial前者文件主要存放已经颁发的证书信息后者存放下一个将要颁发的证书的序列号。这里说一下/etc/pki/CA下的各个文件和目录的作用吧certs目录存放颁发证书的目录crl存放吊销证书列表文件的目录index.txt.attr存放证书subject信息是否唯一的配置信息index.txt.old存放上一次颁发证书的信息newcerts目录存放已经颁发的证书并且以序列号命名的证书每颁发一次证书在我们指定的路径下生成指定名称的证书后newcerts目录下会自动生成一个以序列号为名称的证书这个证书同我们指定路径下存放的证书信息一模一样。private目录存放私钥文件。serial.old存放上一次颁发证书的序列号。 颁布的证书存放目录 4.5将颁发的证书app.crt传送回给192.168.6.130即可
[rootCentos7 certs]# scp app.crt 192.168.6.130:/root/ssl/