自己做一个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
下一篇 2017-04-11

相关推荐

  • 十三.Linux博客-2016年8月18日while、for特殊用法、selet循环与菜单、函数

    格式说明: 操作 概念 命令 说明及举例 十三.while、for特殊用法、selet循环与菜单、函数 while特殊用法 while循环的特殊用法(遍历文件的每一行): while read line; do 循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/…

    Linux干货 2016-08-24
  • 马哥教育网络班22期+第十二周课程练习

    1、请描述一次完整的http请求处理过程。    (1) 客户端与服务端通过TCP三次握手建立或处理连接:接收请求或拒绝请求    (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程    (3) 处理请求:对请求报文进行解析,获取客户端请求…

    Linux干货 2016-12-29
  • Linux基础之安全加密及CA、证书实战应用

    一、建立私有CA并让客户端申请请求,需要两台虚拟机完成 1、建立私有CA,生成私钥 2、CA公司给自己,生成自签证书 3、为CA提供所需要的目录及文件(如果事先存在,此步骤可以跳过) 二、CA公司已建立,需要一台客户机配合CA签署证书 1、客户端用到证书,因此生成私钥 2、客户端生成证书签署请求 3、将请求通过可靠方式发送给CA主机,这里作为测试,因此使用s…

    Linux干货 2016-10-04
  • Java中的CopyOnWrite容器

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和…

    Linux干货 2016-08-15
  • Jerry首作_linux基础

    一、计算机的组成及其功能 硬件 冯·洛伊曼体系 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 存储器(Memory):存储器的功能是…

    Linux干货 2016-10-25
  • MAN 手册各章节功能介绍及快捷键键位整理

    man手册各章节功能介绍及快捷键键位整理 Linux系统提供了相对比较丰富的帮助手册(man),man是manual的缩写,是系统中提供相关条目参考信息的命令。 Ⅰ、man手册分为多个section 使用手册:压缩格式的文件,有章节之分; 存储位置/usr/share/man    man1,man2,man3,man4,man5,man…

    Linux干货 2016-10-16