自己做一个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

相关推荐

  • 【招聘】北京/互联网/运维工程师/7-15K/双休,五险一金

    岗位职责:   1、负责服务器的规划、调试优化、日常监控、故障处理、数据备份、日志分析等工作;   2、参与运维流程制定,确保任何突发情况都能高效响应;  3、负责服务器部署,对服务器构架和网络进行优化和改进;  4、负责运维相关数据的收集、分析和总结;  5、负责技术运维相关的文档、手册…

    Linux干货 2016-04-16
  • Linux学习 Grep详则。

    grep 功能说明:查找文件里符合条件的字符串。 语  法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][–help][范本样式][文件或目录&…

    Linux干货 2017-07-24
  • AWK学习总结

    AWK是一种优良的文本处理工具。其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母。AWK提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。 AWK学习总结 函数rand(): 函数length() 函数int()…

    Linux干货 2016-12-03
  • pam_mysql认证ftp虚拟用户账号,且拥有不同的权限

    关防火墙:#systemctl stop firewalld                #setenforce 0 #yum install mariadb.server #yum install mariadb-d…

    Linux干货 2017-06-07
  • 关于磁盘管理的例子

    今天来说一个关于磁盘管理的例子,通过这个例子也顺便了解一下此例子涉及到的一些相关命令、文件。 练习:创建一个2G的文件系统,块大小为2048byte, 预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项 思路:1.在/etc/fstab中定义开机自动挂载信息    &nbs…

    Linux干货 2017-08-19
  • iptables实验2

    IPTABLES   实验2       实验大体结构图       相关概念及公式 源地址转换:    SNAT   POSTROUTING 目标地址转换:DNAT  PREROUTING   每次重启网络后…

    Linux干货 2016-10-24