zoukankan      html  css  js  c++  java
  • CA认证和颁发吊销证书

    摘要:涉及到网络安全这一块,想必大家都听过CA吧。像百度、淘宝、京东等这些知名网站,每年都要花费一笔money来买CA证书。但其实简单的企业内的CA认证,我们自己就可以实现,今天小编我就讲解一下怎么在企业局部实现CA认证。

    一、CA介绍

    1、电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中钥的合法性检验的责任。

    2、PKI: Public Key Infrastructure

      签证机构:CA (Certificate Authority) 

      注册机构:RA

      证书吊销列表:CRL

    3、获取证书两种方法:

    • 使用证书授权机构

      生成签名请求(csr)

      将csr 发送给CA

      从CA 处接收签名

    • 自签名的证书

      自已签发自己

    4、实例:打开百度,按F12,可以查看百度的CA证书

    二、创建私有CA和申请证书及简单步骤说明

    1、原理介绍:

    我们以A端为CA机构,B端是申请证书的公司

    2、A端自签证书,自签证书之前我们要,了解查看配置文件的说明 vim /etc/pki/tls/openssl.cnf,会告诉我们怎么自签证书,要求我们创建的东西放在哪些目录下。

     [ CA_default ]

    dir                 = /etc/pki/CA     # Where everything is kept   总目录,把总目录付给变量,下边都用变量表示

    certs             = $dir/certs        # Where the issued certs are kept  发布的证书,若干证书

    crl_dir              = $dir/crl         # Where the issued crl are kept      证书吊销列表

    database           = $dir/index.txt        # database index file.             文本文件,数据库,存放证书编号,简单的索引

    #unique_subject  = no           # Set to 'no' to allow creation of    是否允许多个证书用相同的subject(颁发给谁)

                                # several ctificates with same subject.

    new_certs_dir   = $dir/newcerts    # default place for new certs.  新颁发的证书放的地方

      

    certificate       = $dir/cacert.pem     # The CA certificate   证书文件,第一个是自签名证书

    serial        = $dir/serial       # The current serial number   下一个要颁发证书的编号

    crlnumber      = $dir/crlnumber         # the current crl number   吊销列表的编号

                                  # must be commented out to leave a V1 CRL

    crl                  = $dir/crl.pem        # The current CRL          吊销列表存放的文件

    private_key         = $dir/private/cakey.pem # The private key   私钥放的地方

    RANDFILE         = $dir/private/.rand     # private random number file   随机数

    3、申请证书时,要填写的必要信息

     [ policy_match ]   注意:match必须匹配,客户端申请证书和CA颁发填写的信息必须相同

    countryName         = match国家

    stateOrProvinceName  = match省、州

    organizationName     = match组织、公司名

    organizationalUnitName = optional 部门

    commonName      = supplied 给哪个域名颁发

    emailAddress       = optional[ policy_anything ] 邮件地址

      

    3、B端证书申请及签署步骤:

    ① 生成申请请求

    ② RA 核验

    ③ CA 签署

    ④ 获取证书

    三、A端创建私有CA

    1、创建所需要的文件(如果不创建,后边操作会出错)

    touch /etc/pki/CA/index.txt 生成证书索引数据库文件

    echo 99 > /etc/pki/CA/serial 指定第一个颁发证书的序列号,一般都是从01开始,也可以不从01开始,但一定要是2位或4位数,我们就以99为例

    2、CA 自签证书

    生成私钥

    cd /etc/pki/CA/

    (umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem [-des3] 2048)

    可以加密,也可以不加密,加过密,后边每次都要输入,为了试验方便就不加密了,但加密更安全

    tree /etc/pki/CA/ 可以看到cakey.pem 生成了

    生成自签名证书

    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem (req申请、-x509自签名、cacert.pem)

      req:请求申请证书

      -new: 生成新证书签署请求

      -x509: 专用于CA 生成自签证书

      -key: 生成请求时用到的私钥文件

      -days n :证书的有效期限

      -out / PATH/TO/SOMECERTFILE : 生成私钥证书的保存路径

    ③ 查看

    cat /etc/pki/CA/cacert.pem 生成的证书文件,直接cat不能看到信息,用下边的命令

    openssl x509 -in /etc/pki/CA/cacert.pem -noout -text   (-text:生成的证书)

    ④ 也可以传到windows上查看,要改后缀,可以为cer/crt,不然不识别,sz发到windows上

     

    四、B客户端申请证书

    1、centos 6 生成私钥

    (umask 066;openssl genrsa -out /app/service.key 2048)

    2、利用私钥生成证书请求文件, 在需要使用证书的主机生成证书请求

    openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr

     

    3、将证书请求文件传输给CA

    scp /app/service.csr 192.168.30.107:/etc/pki/CA

     

    五、A端,签署证书

    1、为了方便管理,创建一个专门放请求的目录,把请求都放在这个目录下,不是必须的

    mkdir csr

    mv service.csr csr/

     

    2、CA 签署证书,并将证书颁发给请求者

    openssl ca -in /etc/pki/CA/csr/service.csr -out /etc/pki/CA/certs/service.crt -days 100

    注意:默认国家,省,公司名称三项必须和CA一致

    签署后:会生成更新一些文件

     

    3、查看证书中的信息:

    openssl x509 -in /etc/pki/CA/certs/service.crt -noout -text

    openssl ca -status 99 查看指定编号的证书状态

    也可以传到windows上查看,看到更清楚,sz发到windows上

     

    六、吊销证书

    1、在客户端(A端)获取要吊销的证书的serial(编号)

    openssl x509 -in / PATH/FROM/CERT_FILE -noout -serial -subject

    2、在CA(B端) 上,根据客户提交的serial 与subject 信息,对比检验是否与index.txt 文件中的信息一致,确认就吊销证书:

    openssl ca -revoke newcerts/99.pem

    3、指定第一个吊销证书的编号

    注意:第一次更新证书吊销列表前,才需要执行

    echo 01 > /etc/pki/CA/crlnumber

    4、更新证书吊销列表,将来将吊销的列表放到互联网上,让大家知道

    openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem

    5、查看crl 吊销文件:

    openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text

    也可以在windows上查看,sz发到windows上,后缀改为.crl

    好了,有关CA证书的东西就这些了。

  • 相关阅读:
    Hdu 5396 Expression (区间Dp)
    Lightoj 1174
    codeforces 570 D. Tree Requests (dfs)
    codeforces 570 E. Pig and Palindromes (DP)
    Hdu 5385 The path
    Hdu 5384 Danganronpa (AC自动机模板)
    Hdu 5372 Segment Game (树状数组)
    Hdu 5379 Mahjong tree (dfs + 组合数)
    Hdu 5371 Hotaru's problem (manacher+枚举)
    Face The Right Way---hdu3276(开关问题)
  • 原文地址:https://www.cnblogs.com/along21/p/7595912.html
Copyright © 2011-2022 走看看