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

相关推荐

  • date(时间),timedatectl(时区),cal(日历)的用法

    date+%F 显示日期,   显示格式如 2017-07-15+%T 显示时间    显示格式如 15:00:15+%Y 显示年      显示格式如 2017+%m 月 +%d 日+%H 时+%M 分+%S 秒+%s 从linux初始到现在经历了多少秒+%w 显示数字形式的星期+%a …

    Linux干货 2017-07-14
  • Linux用户管理相关

    Q1列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@radio_freshman ~]# who root     tty1         201…

    Linux干货 2016-11-13
  • 用户和组管理类命令

    用户和组管理类命令 useradd useradd命令用于Linux中创建的新的系统用户 语法 useradd(选项)(参数) 选项 -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中; -d<登入目录>:指定用户登入时的启始目录; -D:变更预设值; -e<有效期限>:指定帐号的有效期限; -f<…

    Linux干货 2018-03-18
  • 谷歌三大核心技术(二)Google MapReduce中文版

    摘要 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。现实世界中有很多满足上述处理模型的例子,本论文将详细描…

    Linux干货 2015-04-13
  • N25第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     其常用的有: touch、stat、rm、cp、mv、install touch 命令    命令格式: touch [OPTION]… File… 命令参数: -a&n…

    Linux干货 2016-12-12
  • Linux基础知识(三)

    1、列出当前系统上所有已经登录的用户的用户名(多次登录的用户,只显示一次即可) [root@bogon ~]# w |grep -E ".*(pts|tty).*"|awk '{print $1}'|uniq 2、列出最后登录到当前系统的用户的相关信息 [root@bogon ~]# last -aF 3、取出当前系统…

    Linux干货 2016-10-09