自己做一个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基础学习-第九天(shell基础)

    2016-08-10 授课内容: shell脚本基础: 变量 运算 bash测试(数字测试、字符测试、文件测试、组合测试) read命令 变量作用: 1、数据存储格式 2、参与的运算 3、表示的数据范围 变量类型: 1、本地变量 2、环境(全局)变量 3、特殊变量     驼峰命名变量:每个单词一个字母大写 本地变量:…

    Linux干货 2016-08-11
  • 自用vim环境参数设置

    基本显示设置 set nu mber 显示行号 syntax on 语法高亮 set cursorline 用浅色高亮当前行 set ruler 显示标尺 set showcmd 输入的命令显示出来,看的清楚些 set cmdheight=1 命令行(在状态行下)的高度,设置为1 set tabst…

    Linux干货 2017-04-24
  • 第十一周作业

    第十一周作业 1、详细描述一次加密通讯的过程,结合图示最佳 第一阶段:ClientHello: 支持的协议版本,比如tls 1.2; 客户端生成一个随机数,稍后用户生成“会话密钥” 支持的加密算法,比如AES、3DES、RSA; 支持的压缩算法; 第二阶段:ServerHello 确认使用的加密通信协议版本,比如tls 1.2; 服务器端生成一个随机数,稍后…

    2017-10-29
  • Nginx 常见配置解析

    结构上: 核心模块:HTTP模块、EVENT模块、MAIL模块。 基础模块:HTTP access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。 第三方模块:HTTP Upstream Request Hash模块。 功能上: Handlers…

    Linux干货 2016-12-05
  • N27_第五周作业

    一、显示当前系统上root、fedora或者user1用户的默认shell; [root@localhost ~]# grep -E “^(root|fedora|user1)” /etc/passwd | cut -d: -f7 /bin/bash /bin/tcsh /bin/bash二、找出/etc/rc.d/init.d/fu…

    Linux干货 2017-10-20
  • NoSQL之MongoDB

    分布式系统理论 1、 CAP: 分布式系统只能满足其中两个  Consistency :一致性 Availibility:可用性 Partitions Tolerance :分区容错性 C,A : SQL 传统的数据库。 两段机制。 C,P :悲观枷锁机制,分布式加锁机制。加锁机制与SQL不太一样。 这里的C为最终一致性。 放弃C后的特例,既可以保证可用性,…

    2018-01-09