私有CA服務器的搭建

openssl是實現ssl協議的應用程序,可以使用yum install -y openssll來安裝,構建私有CA之前先來了解openssl的使用;

    openssl的主配置文件:/etc/pki/tls/openssl.cnf

                     [CA_default]

                            dir:CA的主目錄

                            certs:已頒發證書的存儲位置

                            crl_dir:已吊銷證書的存儲位置

                            database:證書索引文件

                            new_certs_dir:新頒發證書的存儲位置

                            certificateCA證書文件

                            serial:證書頒發時的當前序列號

                            crlnumber:吊銷證書的當前序列號

                            crl:當前使用的CRL

                            private_key:CA私鑰

                            RANDFILE:私有隨機數生成器文件

       私有CA作爲單位或組織內部多臺主機驗證身份使用,不在互聯網上起作用,是基於ssl協議利用openssl搭建的,openssl私有CA使用的x.509的證書,構建私有CA分爲CA服務器操作和客戶機操作。

1、構建私有CA

       a、私有CA服務器生成私鑰

wpid-c4de30f5eb135497efbc595f884edd49_cl

[root@www1 CA]# (umask 077; openssl genrsa
-out private/cakey.pem 2048) 命令解釋

       括號():在當前shellzishell中執行

       umask
077:設定默認umask,這樣生成的證書權限就是600,除了root用戶其他用戶均沒有操作權限;

       genrsa:生成私鑰命令

       -out:輸出文件,後面是私鑰輸出的路徑名字

       2048:加密位數

       b、生成自簽署證書

              req子命令:生成PKCS#10格式的證書籤署請求

              -new:生成新的證書籤署請求;

              -key /path/to/private_key_file:私鑰文件路徑;

              -daysn:證書有效時長;

              -out /path/to/request_file: 生成的證書請求文件路徑;

              x509:專用於CA生成自簽署證書時;

              -newkey rsa:NUM  無需事先專門生成私鑰文件,而是生成請求時直接生成私成私鑰,並提取公鑰用於證書;也就是說上面a步驟可以不執行,而直接使用此命令直接生成私鑰並簽署;

 wpid-c4de30f5eb135497efbc595f884edd49_cl      

在給服務器簽署證書的時候需要和此處的位置和公司內容保持一致,因爲這是一個私有CA,是屬於這個公司,只能簽署這個公司內部的服務器;

       [root@www1 CA]# touch ./{index.txt,serial}

       [root@www1 CA]# echo 01 > serial

  生成索引文件和序號,這裏需要手動添加序號01,以後再簽署證書時就不用了;

2、給節點服務器發放證書

       私有CA服務器上面已經構建好了,開始爲內部服務器發放證書

      此處是以http服務器爲例,證書位置爲/etc/httpd/conf/certs/

      ahttp服務器生成私鑰

      和上面CA服務生成私鑰的方法一樣;

wpid-c4de30f5eb135497efbc595f884edd49_cl             b、生成私鑰之後,要想讓CA簽署需要生成證書籤署請求;

wpid-c4de30f5eb135497efbc595f884edd49_cl

    密碼可以留空,這樣證書籤署請求就已經生成,需要私有CA服務器簽署;

     c、把請求文件發送給CA

         scp httpd.csr CA服務器IP:路徑(例如:172.16.100.1:/tmp

     d、私有CA服務器簽署證書:此處是在CA服務器上進行

wpid-c4de30f5eb135497efbc595f884edd49_cl

簽署時會顯示證書的詳細信息,會有兩次確認是否簽署,直接y就可以簽署;這樣這書就            已經簽署好了;

    此時查看CA服務器索引文件會發現已經多了一條,正是簽署的那臺服務器的證書

wpid-c4de30f5eb135497efbc595f884edd49_cl             e、將簽署好的證書發送給服務器

     scp /tmp/httpd.src  http服務器IP:路徑(例如:172.16.100.2:/etc/httpd/conf/certs

     此時證書已經簽署好了,如果客戶端想通過https訪問,則需要去CA服務器下載CA服務器的   正式,  具體的認證過程:客戶端通過https訪問時,服務器會將自己的證書發送給客戶端,客戶端   根據下載的CA證書中的公鑰解密服務器的證書的數字簽名,如果和證書中描述的信息符合,則證   明來源正確,再通過單向加密算法,提取http服務器的證書文件的特徵碼,對比CA證書中的記錄,      如果符合則說明證書沒有被篡改,再次驗證http服務器主體信息與服務器地址是否相同,相同則會  將信任http服務器。

[root@www1 certs]# openssl x509 -in httpd.crt -noout -subject

              查看證書主體信息

[root@www1 certs]# openssl x509 -in httpd.crt -noout -serial

              查看證書序列號

 [root@www1 certs]# openssl x509 -in httpd.crt -noout -text

              查看證書文本信息

3、證書吊銷

       服務器不使用了,證書需要吊銷,以免出現安全問題;

       a、獲取要吊銷證書的序列號serial,利用上面的命令可以查看

wpid-c4de30f5eb135497efbc595f884edd49_cl

      

bCA服務器操作

              1、根據證書持有者提交的serialsubject信息來與index.txt數據庫文件中的信息是否一致;

              2、吊銷證書

wpid-c4de30f5eb135497efbc595f884edd49_cl             

             

 

3、生成吊銷證書的編號(如果是第一次吊銷)

              [root@www1 CA]# echo 01 > /etc/pki/CA/crlnumber

              4、更新證書吊銷列表

                     [root@www1 CA]# cd crl

                     [root@www1 crl]# openssl ca -gencrl -out thisca.crl

              此時我們再來查看index.txt文件

wpid-c4de30f5eb135497efbc595f884edd49_cl

之前的V已經變成R了,說明序列號爲01的證書已經時吊銷狀態了

4、私有CA的構建以及給服務器簽署、吊銷證書過程就是這樣子,有什麼不對的地方誠心希望指出。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章