码迷,mamicode.com
首页 > 其他好文 > 详细

CA证书

时间:2014-08-03 07:54:15      阅读:577      评论:0      收藏:0      [点我收藏+]

标签:数据加密   证书   特征码   密码   认证   

密码算法

    对称加密:加密和解密方都是用同一个密码。

    公钥加密:非对称加密,加密和解密使用的是不同的密钥,公钥和私钥是成对出现的,公钥是从私钥中提取出来的,公钥加密要用私钥解密,私钥加密要用公钥解密。

    单向加密:数据完整性算法,用来抽取数据的特征码,二次抽取和一次抽取的特征码进行比较,用来验证数据是否被修改过。

    认证协议:验证通信方的真实性。

 

    数据加密分析

    bubuko.com,布布扣

    A1:A的公钥        B1:B的公钥

    A2:A的私钥        B2:B的私钥

 

    加密过程:

        1.对于要发送的数据,会先用单向加密对数据提取出特征码。

        2.用A2对特征码加密,放在数据后面。

        3.对称加密会经过特殊的算法对数据和特征码进行整体加密,形成一个密钥。

        4.用B1对经过对称算法生成的密钥进行加密并放在整体的后面。

 

    解密的过程:

        1.对发送过来的数据,B会先用B2对数据进行解密,这里就可以看出是公钥加密,私钥解密了,如果能解密,则表示这个数据是B的,所以,就算有人窃取到这个数据包,他没有B2,就解密不了,他就无法查看。

        2.经过B2解密后,拿出的是经过对称加密的密钥,就可以对这个数据包进行解密。这里就可以看出对称加密就是用相同的密钥来进行加密解密的。

        3.解密出来后,B会拿A1来解密,如果能解密,B就会知道这个数据包一定是A发来的。这里表现出的是私钥加密,公钥解密的特性,它的用途就是用来进行身份验证的。

        4.解密后,B会对数据进行单向加密算法生成出一个特征码,拿这个特征码和从A发过来的特征码进行比较,如果一样,则表示这个数据没有被篡改过,如果不一样,则表示数据被人篡改,数据不会被信任。

 

    现在问题出来了,那么B怎么获得对方可靠的公钥并且这个公钥还是真实的?这就得说说ca了。

 

Ca证书

    CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。

    在A和B 通信之前,A会去问CA:“给我发个证,证明我是合法的”,A会向CA发出申请,这个申请表上会有A的信息,例如:国家,省份,城市,名字,域名,自己的公钥等,CA看了之后,签个字,用单向加密算法提取特征码,用自己的私钥加密,发给A,然后A拿着证书让B看,会说:“你看我有证,我是合法的”,但是这是B不知道这个证书的真假,这时,它会拿着CA的公钥对它解密,解开了,证明的确是CA颁发的证书,在经过单向加密算法对证书提取特征码并与之比较,一样,则证明证书完整,这样B就相信A了。

 

openssl建立CA服务器

    1.生成密钥,自己配置先生成一对密钥(公钥和私钥)

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

    在当前shell中用()执行命令表示括号中的命令要在子shell中执行,2048表示密钥的长度、-out后面表示生成密钥文件保存的路径,生也的文件权限是666、而这个文件不能被别人访问、所在666-077就得到权限600。图为查看私钥文件显示的结果

    bubuko.com,布布扣

    

    2.自签证书,既然定义自己为CA服务器,自己要给自己颁发一个证书,确立威信。

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

         req: 生成证书签署请求

        -news: 新请求

        -key /path/to/keyfile: 指定私钥文件

        -out /path/to/somefile: 证书存放的位置

        -x509: 生成自签署证书

        -days n: 有效天数

    bubuko.com,布布扣

 

    #touch /etc/pki/CA/serial     给客户发证编号存放的文件

    #touch /etc/pki/CA/index.txt  缩影文件数据库,签署给别人的证书,这里就会有一个缩影

    #echo 01 > /etc/pki/CA/serial 给这个文件指定从哪开始

 

客户端配置节点生成请求

    1.生成密钥对儿

    #mkdir /etc/httpd/ssl

    # (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

    bubuko.com,布布扣

    

    2.生成证书签署请求

    # openssl  req  -new  -key  /etc/httpd/ssl/httpd.key  -out  /etc/httpd/ssl/httpd.csr

    

    3.把签署请求文件发送给CA服务

    # scp /etc/httpd/ssl/httpd.csr 192.168.0.2:/etc/pki/CA/

 

CA服务器签署证书

    1.验正证书中的信息

    2.签署证书

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

    bubuko.com,布布扣

 

3.发送给请求者;

    #scp httpd.crt 192.168.0.20:/etc/httpd/ssl/

 

吊销证书

    1.获取证书序列号

    bubuko.com,布布扣

 

    2.根据节点提交的serial和subject信息来验正与index.txt文件中的信息是否一致

    bubuko.com,布布扣

 

    3.若果检查结果一致,那么就可以吊销证书了

    bubuko.com,布布扣

 

    4.生成吊销证书的编号(如果是第一次吊销)

    #touch /etc/pki/CA/crlnumber

    # echo 00 > /etc/pki/CA/crlnumber

 

    5.更新证书吊销列表

    # cd /etc/pki/CA/crl/

    # openssl ca -gencrl -out httpd.crl

    bubuko.com,布布扣

 

验证CA证书

    把客户端生成的httpd.crl证书提取到本机上

    bubuko.com,布布扣 

    bubuko.com,布布扣

 

    尝试安装httpd.crl

    bubuko.com,布布扣

    安装证书

    bubuko.com,布布扣

    点击下一步

    bubuko.com,布布扣

    bubuko.com,布布扣

    bubuko.com,布布扣

 

    到此,CA就安装成功了。

本文出自 “鱼儿” 博客,请务必保留此出处http://kyfish.blog.51cto.com/1570421/1534330

CA证书,布布扣,bubuko.com

CA证书

标签:数据加密   证书   特征码   密码   认证   

原文地址:http://kyfish.blog.51cto.com/1570421/1534330

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!