03--OpenSSL

OpenSSL证书架构

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

基本概念:

  三个组件:vim

    openssl  多用户的命令行工具安全

    libcrypto 加解密库服务器

    libssh  ssl协议的实现库文件架构

 

  PKI(Public Key Infrastructure)ssh

    共享密钥基础架构工具

    CA  证书认证服务器  this

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

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

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

    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  //证书的有效期

 

  建立私有证书的步骤

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

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

    三、CA签署这个证书;

    四、颁发证书

 

  建立私有CA服务器,配置以下:

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

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

    生成根证书文件

(umask 0777;openssl genrsq -out /etc/pki/CA/private/cakey.pem 2048)   //建立私有的证书请求文件
openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm -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

证书吊销相关操做与步骤

   若是证书过时,或者提早吊销这个证书,咱们如何作呢?

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

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

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

  对比index.txt的信息:

cat /etc/pki/CA/index.txt

  吊销证书:

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

  三、生成吊销证书的编号(第一次吊销某证书的时候须要这个步骤,若是以后再次吊销证书的时候,就不要这个步骤了);

echo 01 > /etc/pki/CA/crlnumber

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

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

  查看crl文件:

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

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

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

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息