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服務的時候會結合實際狀況再行說明】

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息