• 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证书的东西就这些了。

  • 相关阅读:
    解决vs 编译的bug“请检查是否是磁盘空间不足、路径无效或权限不够”
    lua 使用正则表达式分割字符串
    cocos2dx通过ndk编译c++库
    通过luac编译lua脚本
    redis的一个bug
    将文件转成16进制过程
    fiddler 模拟发送post请求
    cocostudio的bug(1)
    Eclipse+Tomcat搭建jsp服务器
    iOS本地推送与远程推送
  • 原文地址:https://www.cnblogs.com/along21/p/7595912.html
Copyright © 2020-2023  润新知