zoukankan      html  css  js  c++  java
  • 03--OpenSSL

    OpenSSL证书架构

      证书架构在我们互联网http协议上使用最多,https及http over ssl,是对http数据进行加密认证的一种机制,它就是与OpenSSL使用的相关认证机制相同;

    基本概念:

      三个组件:

        openssl  多用户的命令行工具

        libcrypto 加解密库

        libssh  ssl协议的实现库文件

     

      PKI(Public Key Infrastructure)

        共享密钥基础架构

        CA  证书认证服务器  

          注册机构用来颁发证书,验证数据的正确性的,类似于公安局,它必须是要权威认证机构来充当;在我们互联网上,类似于VeriSign,就是最有名的CA证书机构;

          证书机构CA是PKI的信任基础,它管理公钥的整个生命周期。其作用包含:发放证书、规定证书的有效期和通过公布证书废除列表(CRL)确保必要时能够废除证书。后面将会在CA进行具体介绍。

          默认情况下,我们的电脑上,默认就有一些证书颁发机构颁发的证书:

        RA  证书注册机构

          注冊机构RA提供用户和CA之间的一个接口。它获取并认证用户的身份,向CA提出证书请求。它主要完毕收集用户信息和确认用户身份的功能。这里指的用户,是指将要向认证中心(即CA)申请数字证书的客户,能够是个人,也能够是集团或团体、某政府机构等。

        CRL  证书的废止列表

          RA在吊销证书后,确保证书无效后,则将证书放入到CRL列表;

        证书存取库  

          维护证书正常状态的一个库文件

     

      在公司中,我们有时候要为自己的内部服务器实现安全保护,会需要搭建内部的CA服务器;而这个内部的CA服务器是只在内网生效,公网是不认可的;

      搭建的这个内网的CA服务器,我们就使用OpenSSL软件程序来实现,对于专业CA服务器的搭建可以选择功能更加强大的OpenCA软件程序,但是我们只介绍OpenSSL;

    证书申请及签署步骤

      配置之前,我们先了解下主配置文件【可以不用修改】

      vim /etc/pki/tls/openssl.cnf

        [ca]  //ca的配置目录

        default_ca CA_default

        certs  //存放已经签署的证书

        crl   //被吊销的证书存放的地方

        index.txt  //数据库的索引文件,证书的基本信息都存放在这里

        unique_subject = no  //证书信息是否要唯一

        certificate    //CA服务器给自己的证书

        serial  //证书的序列号

        crlnumber  //吊销证书的序列号

        private_key    //只当证书的私钥存放的路径

        default_day  //证书的有效期

     

      创建私有证书的步骤

        1、生成一个申请请求(公司的各种细腻些,国家省份正真的名字部门的名字)这些信息会存放在证书认证机构中,之后来申请证书的服务器提供的证书申请是要匹配这些信息的;

        2、RA注册机构验证这些信息;

        3、CA签署这个证书;

        4、颁发证书

     

      创建私有CA服务器,配置如下:

        在CA证书服务器上,创建序列号文件:

    cd /etc/pki/CA/
    touch index.txt  //证书index索引信息
    echo 01 > serial  //证书序列号信息

        生成根证书文件

    (umask 0777;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)   //创建私有的证书请求文件
    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out cacert.pem  //生成证书

        -new  //生成新的证书签署请求

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

        -key  //指定生成请求时用到的私钥文件

        -days  //指定该证书的有效期

        -out /PATH/TO/SOMECERTFILE  //指定证书的保存路径

        这里唯一要注意的,就是服务器的主机名,一定要于服务器名字保持一致;

     

      为客户端颁发证书发证

        a、客户端到证书的主机生成证书请求

        b、把请求文件传输给CA

        c、签署证书,并将证书发还给请求者

    yum install httpd -y
    mkdir /etc/httpd/ssl/
    cd /etc/httpd/ssl/
    (umask 0777;openssl genrsa -out httpd.key 2048)
    openssl req -new -key httpd.key -days 365 -out httpd.csr

        再将生成的证书请求发送给服务器端:

    scp httpd.csr root@192.168.94.128:/tmp/

        最后去服务器上做证书颁发:

    cd /tmp/
    openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 365

     

        这里会核对信息,如果有一些必须匹配的信息不匹配,证书是无法签发的;

        此时,再目录 /etc/pki/CA/newcerts/ 下,会生成 .pem 文件,就是我们CA证书服务器签署的证书保留文件;

      再将证书传输回客户端;

    scp /tmp/httpd.crt root@192.168.94.129:/etc/httpd/ssl/

       这时候,可以再客户端上查看证书信息:

    openssl x509 -in /PATH/FORM/CERT_FILE -noout -text/-subject/-serial

    证书吊销相关操作与步骤

       如果证书过期,或者提前吊销这个证书,我们如何做呢?

      1、客户端先去获取要调证书的序列号;

    openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -subject -serial

      2、CA服务器根据客户端提交的serial和subject信息,对比是否于index.txt文件中信息一致;如果一致,就可以开始吊销证书;

      对比index.txt的信息:

    cat /etc/pki/CA/index.txt

      吊销证书:

    openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

      3、生成吊销证书的编号(第一次吊销某证书的时候需要这个步骤,如果之后再次吊销证书的时候,就不要这个步骤了);

    echo 01 > /etc/pki/CA/crlnumber

      4、更新证书吊销列表CRL;

    openssl ca -gencrl -out thisca.crl
    cat thisca.crl 

      查看crl文件:

    openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text

      至此,这个证书就已经被吊销;

      【关于pki证书架构,在之后配置https服务的时候会结合实际情况再行说明】

  • 相关阅读:
    3D Slicer 体系结构2
    3D Slicer 体系结构1
    3D Slicer FAQ-3
    3D Slicer FAQ-2
    3D Slicer FAQ-1
    3D Slicer 编译、调试、规范化的开发
    3D Slicer 开发者必晓ABC
    3D Slicer 模块管理(二)场景视图、体数据、体绘制
    3D Slicer 模块管理(一)颜色、DCM、数据、模型、注释
    3D Slicer 数据与帮助
  • 原文地址:https://www.cnblogs.com/BurnovBlog/p/10990052.html
Copyright © 2011-2022 走看看