关于 建立私有CA和申请证书

                           建立私有CA和申请证书                         

CA和证书
     PKI: Public Key Infrastructure
签证机构:CA(Certificate
Authority)
注册机构:RA
证书吊销列表:CRL
证书存取库:
   
   
X.509:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法
颁发者
有效期限
主体名称
主体公钥
CRL分发点
扩展信息
发行者签名   

       
证书获取
证书类型:
        证书授权机构的证书
        服务器
       
用户证书
获取证书两种方法:
                使用证书授权机构
                   
生成签名请求(csr)
                    将csr发送给CA
                   
从CA处接收签名
                自签名的证书
                   
自己签发自己的公钥
创建CA和申请证书
创建私有CA:
           openssl的配置文件:
/etc/pki/tls/openssl.cnf
           [root@Compro 7 ~]# vim
/etc/pki/tls/openssl.cnf
   (1) 创建所需要的文件
       [root@Compro 7 ~]# touch
/etc/pki/CA/index.txt    创建CA存放数据的文档
       [root@Compro 7 ~]# echo 01 >
/etc/pki/CA/serial   索引编号生成版本号到一个文件
       [root@Compro 7 ~]# cat
/etc/pki/CA/serial     
       01
   (2) CA自签证书
       生成私钥
  
[root@Compro 7 ~]# cd /etc/pki/CA/
   [root@Compro 7 CA]# ls
   certs 
crl  index.txt  newcerts  private  serial
   [root@Compro 7 CA]# (umask
066;openssl genrsa -out private/cakey.pem 2048)        
   [root@Compro 7
CA]# cd private/
   [root@Compro 7 private]# ls
   cakey.pem
  
[root@Compro 7 private]# cat cakey.pem
       
生成自签名证书 :
      格式语法

                opensslreq-new -x509 –key
               
/etc/pki/CA/private/cakey.pem-days 7300
                -out
/etc/pki/CA/cacert.pem
                -new: 生成新证书签署请求
               
-x509: 专用于CA生成自签证书
                -key: 生成请求时用到的私钥文件
               
-days n:证书的有效期限
                -out /PATH/TO/SOMECERTFILE:
证书的保存路径
 
                [root@Compro 7 private]# openssl req -new -x509
-key cakey.pem -days 7300 -out ../cacert.pem    命令

                Country Name (2 letter code) [XX]:CN                   
国家
                State or Province Name (full name) []:beijing        
城市
                Locality Name (eg, city) [Default City]:haidian      
地区
                Organization Name (eg, company) [Default Company
Ltd]:xiaomag.com   公司
                Organizational Unit Name (eg, section)
[]:FBI        部门
                Common Name (eg, your name or your server's
hostname) []:centos7  指定给谁用
                Email Address
[]:xiaomag@xiaomag.com             邮箱
   (3) 颁发证书:
       (a)
在需要使用证书的主机生成证书请求;  这时候换到另一台机器上面做,比如我使用CentOS6
        给web服务器生成私钥 格式语法:
(umask066; opensslgenrsa-out /etc/httpd/ssl/httpd.key2048)
       
[root@Compro ~]# (umask 066;openssl genrsa -out /etc/pki/tls/private/httpd.key
2048)
        [root@Compro ~]# cd /etc/pki/tls/private/
       
[root@Compro private]# ls
        httpd.key
    生成证书申请文件 opensslreq-new
-key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr
       
[root@Compro private]# openssl req -new -key httpd.key -days 365 -out
httpd.csr
        Country Name (2 letter code) [XX]:CN                 
国家
        State or Province Name (full name) []:beijing       城市
       
Locality Name (eg, city) [Default City]:haidian     地区
        Organization
Name (eg, company) [Default Company Ltd]:xiaomag.com  公司
       
Organizational Unit Name (eg, section) []:FBI      部门
        Common Name
(eg, your name or your server's hostname) []:www.xiaomag.com  指定给谁用
       
Email Address []:xiaomag@xiaomag.com           邮箱
       (b)
将证书请求文件传输给CA
        [root@Compro private]# scp httpd.csr
10.1.7.65:/etc/pki/CA/    传输给7 上面的CA
       (c) CA签署证书,并将证书颁发给请求者;opensslca
-in /tmp/httpd.csr–out /etc/pki/CA/certs/httpd.crt -days 365
       
[root@Compro 7 CA]# openssl ca -in httpd.csr -out certs/httpd.csr
      
注意:默认国家,省,公司名称必须和CA一致
       (d) 查看证书中的信息:
        格式语法:opensslx509 -in
/PATH/FROM/CERT_FILE -noout -text|subject|serial|dates
       [root@Compro 7
CA]# openssl x509 -in cacert.pem -noout -text
       
Certificate:
                    Data:
        Version: 3 (0x2)
       
Serial Number: 11582417720897023278 (0xa0bd038d0641ad2e)
     Signature
Algorithm: sha256WithRSAEncryption
        Issuer: C=CN, ST=beijing,
L=haidian, O=xiaomag.com, OU=FBI,
CN=centos7/emailAddress=xiaomage.com
        Validity
            Not
Before: Sep 23 06:45:30 2016 GMT
            Not After : Sep 18 06:45:30 2036
GMT
        Subject: C=CN, ST=beijing, L=haidian, O=xiaomag.com, OU=FBI,
CN=centos7/emailAddress=xiaomage.com

   (4) 吊销证书
       (a) 在客户端获取要吊销的证书的serial opensslx509 -in
/PATH/FROM/CERT_FILE-noout -serial -subject
       (b)
在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致
       吊销证书:opensslca
-revoke /etc/pki/CA/newcerts/SERIAL.pem
       [root@Compro 7 ~]# openssl ca
-revoke /etc/pki/CA/certs/httpd.csr
       (c)
生成吊销证书的编号(第一次吊销一个证书时才需要执行)
       [root@Compro 7 ~]# echo 01 >
/etc/pki/CA/crlnumber
       (d) 更新证书吊销列表
       [root@Compro 7 ~]#
opensslca -gencrl -out /etc/pki/CA/crl/ca.crl
       查看crl文件:
      
[root@Compro 7 ~]# openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text

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

(0)
小马哥小马哥
上一篇 2016-09-23 21:32
下一篇 2016-09-24 10:34

相关推荐

  • vfork 挂掉的一个问题

    在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。 我受邀后本来不想回答这个问题的,因为这个问题明显就是RTFM的事,后来,发现这个问题放在那里好长时间,而挂在下面的几个答案又跑偏得比较严重,…

    Linux干货 2016-08-15
  • 在学习的过程中,我们应该如何获取帮助?

    正文 在学习的过程当中,我们总是遇到不会使用的问题,以各种姿势来获取帮助是一个运维人员的基本要求 在Linux系统中我们获取帮助主要有以下几种方式 1. 使用命令内建的选项来获取帮助 2. 使用man来查看命令使用手册 3. 使用info来查看命令的信息页 4. 查看软件自带的帮助文档 5. 查看软件官方的文档 6. 查看发行版本的文档 7. Google相…

    Linux干货 2016-03-04
  • ​HA专题: Corosync+Pacemaker+drbd实现MySQL高可用

    HA专题: Corosync+Pacemaker+drbd实现MySQL高可用 前言 实验拓扑 实验环境 实验步骤 安装前准备工作 配置DRBD 配置MySQL 配置Corosync+Pacemaker 测试 我遇到的问题 总结 前言 上篇文章我们介绍了drbd的相关原理、编译安装、简单的实现. drbd虽然可以保证数据的可靠性但是我们上次的实现还…

    Linux干货 2016-04-13
  • Linux简单的磁盘分区、格式化和挂载

     一.分区: 1.查看分区fdisk -l 通过fdisk -l 查看机器所挂硬盘个数及分区情况   2.通过上面的信息,我们知道此机器中挂载两个硬盘分别是:/dev/sda和/dev/sdb, 其中sda有两个主分区/dev/sda1和sda2; 其中sdb有1个扩展类型/dev/sdb3和3个逻辑分区sd…

    Linux干货 2016-02-28
  • BASH编程基础之变量、条件判断

    一、前言 在linux中,通常我们所指的脚本编程,指的是bash的脚本编程。 bash作为一种过程式的编程语言来说,它应该具备编程语言所应该具备的基本元素,即:变量,流程,函数,数组。今天我们介绍变量以及流程之一的条件判断。 二、变量 1、初识变量 在编程语言中,编程语言有两大种,强类型语言和弱类型语言。强类型语言中,要求变量的使用要严格符合定义,所有变量都…

    Linux干货 2015-07-06
  • 利用heartbeat v2版搭建高可用mysql

    一、实验环境  1)实验图        2)同步时间;确保可以使用主机名通信;确保可以使用ssh秘钥方式进行彼此登录;由于是两台设备,需要仲裁;  确保可以使用主机名通信 web1修改hosts文件如下: 172.16.2.12 SQL1.linux.com SQL1 172.…

    Linux干货 2015-07-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-26 12:02

    自建CA一般而言用于内部测试常用,文章对CA主机的创建和证书颁发都有了一个完整的讲解,但是,整体的文章架构上是不是需要优化一下,层次感太弱了哦。