自己做一个CA

构建CA服务器
    CA配置文件位置:
        /etc/pki/tls/openssl.cfg
            dir     = /etc/pki/CA       //CA文件的根目录
            certs       = $dir/certs        //CA存放证书的目录,这里的证书是客户的授权证书
            crl_dir     = $dir/crl      //存放吊销列表文件
            database    = $dir/index.txt    //存放证书条目的文件(证书属性)
            new_certs_dir   = $dir/newcerts     //系统生成的证书条目的编号
            certificate = $dir/cacert.pem   //默认自签证书的存放路径与名字
            serial      = $dir/serial        //定义初始条目数,需要自已填加两位数字初始值到文件
            crlnumber   = $dir/crlnumber    //吊销列表的条目,需要自己填加初始值,为两位数值
            crl     = $dir/crl.pem      //吊销列表的文件
            private_key = $dir/private/cakey.pem    //存放私钥位置
            RANDFILE    = $dir/private/.rand    //私钥的随机数字文件
            policy      = policy_match      //说明生成签证的时候策略的级别{match|anything}
            match    //表示必须匹配的字符,它申请证书文件与CA服务器的自签证书必须相同,如果不同会失败
            optional   //表示此项可以不相同
           supplied    //表示此CA证书所用的地方
    架构图:
        A:172.18.252.67(CA服务器)
        B:172.18.253.176(客户服务器)
    在A设备上进行的操作:
        通过上面的配置文件的说明需要在/etc/pki/CA/private目录下生成私钥
            openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096
        通过上面生成的私钥生成CA的自签证书:
            openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
        生成证书的时候是交互式的
        这里写到的就是上面配置文件中提到的policy策略,如果是默认的话,注意下面的几项,客户在进行生成申请证书的时候与此三项要相同
            Country Name (2 letter code) [XX]:CN   //所在国家
            State or Province Name (full name) []:BeiJing   //所在州/省
            Organization Name (eg, company) [Default Company Ltd]:magedu.com    //签证公司
        查看生成的自签证书
            openssl x509 -in cacert.pem -noout -text
        生成证书完成
        在B设备上进行的操作
    生成私钥:
        openssl genrsa -out /root/http.rsa 2048
    生成申请证书:
        openssl req -new -key /root/http.rsa -out /root/http.csr
        注意,生成申请文件的时候对就的三项要与CA服务器上的对应的三项相同
             Country Name (2 letter code) [XX]:CN   //所在国家
             State or Province Name (full name) []:BeiJing   //所在州/省
             Organization Name (eg, company) [Default Company Ltd]:magedu.com    //签证公司
        将生成的申请书递交给CA服务器
             scp http.csr 172.18.252.67:/etc/pki/CA/
    在A设备上进行对递交的申请进行审核确认
         openssl ca -in http.csr -out certs/http.crt -days 365
         生成的时候报错了
              /etc/pki/CA/index.txt: No such file or directory
              说没有这个目录,根据上面的配置文件所示需要填加一个文件显示证书属性列表
              直接创建此文件即可
              touch index.txt
              再次生成的时候又出错了
              /etc/pki/CA/serial: No such file or directory
              根据配置文件中serial文件的要求,需要创建此文件
              但是通过tree命令查看生成的文件时,看到已经生成了http.crt,但是通过ls命令查看文件是一个空文件
              touch serial
              再次生成时候又出错了
              unable to load number from /etc/pki/CA/serial
              通过配置文件说明,此文件是一个序号文件,这个文件内容要求为两位数值,所以直接通过下面命令进行修改
              echo 01 > serial
          生成正确了
     发送到windows系统进行测试
          安装根证书以后,可以看到打开http.crt文件时不再是”没有足够信息,不能验证该证书”而是显示”所有应用策略”
     由于B服务器进行了非法操作,所以现在要对B服务器的CA进行吊销操作
          openssl ca -revoke certs/http.crt
          生成吊销证书
          openssl ca -gencrl -out crl/crl.pem
          出错:/etc/pki/CA/crlnumber: No such file or directory
          touch crlnumber
          出错:unable to load number from /etc/pki/CA/crlnumber
          echo 11 > crlnumber
          生成成功
          查看吊销证书
          openssl crl -in crl/crl.pem -noout -text
          拉出来看看
          sz crl/crl.pem
      可以看至吊销列表

原创文章,作者:gaomei,如若转载,请注明出处:http://www.178linux.com/73174

(2)
gaomeigaomei
上一篇 2017-04-11 15:06
下一篇 2017-04-11 15:52

相关推荐

  • 文本处理工具之sed

    一.介绍 sed是一个流编辑工具,可以用来实现对文本的过滤与替换,而Linux的哲学思想之一就是一切皆文件,因此对文本的操作至关重要。sed的基本工作原理是通过每次读取一行文本来来对默写符合条件的文本进行处理。要注意的是sed默认并不直接修改源文件,而是将读取到的内容复制到缓冲区在中,这个缓冲区也叫做模式空间,然后在模式空间中对文本进行处理,处理完成后将结果…

    Linux干货 2017-01-05
  • Linux基础

    计算机组成和功能 按照Von Neumann的理解 [1],计算机分为以下几部分:     输入 (Input Device, 用于提供给计算机待处理的数据)         e.g. 键盘,…    &nbs…

    Linux干货 2016-09-27
  • 主从模型的ipvs高可用集群实验

    主从模型的ipvs高可用集群实验 一.实验拓图 二.实验环境 本实验是keepalived+lvs-dr的高可用负载均衡实验 本实验是在虚拟机上完成,因此如上拓扑图需要准备至少四台虚拟机 1.各节点的时间同步 使用yum安装chrony包,使用nat命令同步时间 2.关闭服务主机的iptables和selinux 三.实验步骤: 1.在VS1和VS1上安装k…

    2017-05-17
  • find命令详解

    find命令是用来在给定的目录下查找符合给定条件的文件   find [OPTIONS] [查找起始路径] [查找条件] [处理动作]   一、OPTIONS参数     -P、-L、-H:控制软连接的对待方式,用的不多。不介绍了   二、查找路径     就是个目录路径,相对和绝对都可以。   三、查找条件     (一)、根据名称查找       -na…

    Linux干货 2016-09-19
  • Linux程序包管理之RPM

    前言 Linux平台上常见的软件包格式主要有三种,分别是源码格式包、通用二进制格式包和rpm格式包本文主要讲解rpm格式包安装及管理。RPM是Redhat Package Manager的缩写,是由Redhat公司开发的Linux软件包管理具,因其便捷的管理方式与开源思想,逐渐被其他Linux发行商所采用,现已成Linux平台下通用的软件包管理方式。 rpm…

    Linux干货 2015-03-28
  • Linux文本处理工具之grep

    简介     grep:Global search regular expression and print out the line.     grep是一种文本搜索处理工具,根据用户指定的文本模式或搜索条件对目标文件进行逐行搜索,并显示能匹配到的行。   …

    Linux干货 2015-05-12