天天看點

Linux下實作CA認證

我們知道,當用戶端與伺服器端建立會話之前,首先是用戶端發送請求,然後進行TPC/IP的三次握手,接着用戶端與伺服器端建立ssl會話。

會話過程如下:

Linux下實作CA認證

簡而言之就是:

第一步:用戶端和伺服器雙方共同商量使用什麼加密算法,怎麼加密等等。 第二步:用戶端發送證書給伺服器,目的為了使伺服器相信他。 第三步:伺服器相信了,就生成對稱密鑰,将請求頁面發送給用戶端。 最後,用戶端使用伺服器發送的密鑰加密後,将請求回應給伺服器。

在這個過程中由于伺服器要驗證用戶端身份的真假,是以,這裡需引入了第三方權威頒發機構,即CA,可以給用戶端發證書。而伺服器相信CA的,是以,用戶端擁有CA的證書,進而用戶端就能通路服務端。

接下來,我們就來實作私有CA憑證的認證。

準備工作:兩台主機,centos7做CA憑證,centos6做web伺服器

步驟:一、CA憑證的制作(centos7)

1、檢視是否安裝了openssl軟體

# rpm -qa openssl

2、生成自簽證書

【在/etc/pki/CA目錄下完成】

(1)建立證書索引資料庫和指定第一個證書頒發序列号

Linux下實作CA認證
Linux下實作CA認證

(2)生成私鑰

Linux下實作CA認證

補充:從私鑰中提取公鑰(公鑰是從私鑰提取出來的)

openssl genrsa  -in /etc/pki/CA/private/cakey.pem  -pubout

(3)生成自簽證書【編輯/etc/pki/tls/openssl.cnf】

Linux下實作CA認證
補充:私有CA的配置檔案/etc/pki/tls/openssl.conf,内容有: 這裡之介紹我們需要的内容: [ CA_default ] dir         =/etc/pki/CA                            #定義預設CA目錄 certs          = $dir/certs                    #用戶端證書路徑 crl_dir        = $dir/crl                        #證書吊銷清單的路徑 database        = $dir/index.txt          #儲存已發出去的證書,由于檢索 new_certs_dir  = $dir/newcerts        # 儲存剛生成的證書 certificate    = $dir/cacert.pem      # CA自己的證書 serial          = $dir/serial                  # 證書的序列号,預設是從01開始 crlnumber      = $dir/crlnumber        #證書吊銷清單的工作号 crl            = $dir/crl.pem                  # 證書吊銷清單的檔案 #證書吊銷清單儲存着曾經發出的證書,但是并未過期,而是由于某些原因不能使用了(安全機制) private_key    = $dir/private/cakey.pem      # 私鑰檔案

是以我們需要在/etc/pki/CA/目錄下建立私鑰檔案,CA憑證、cert、crl、newcerts目錄,建立serial和index.txt檔案。

由此,CA憑證便建立完成。

二、為用戶端頒發證書(centos6)

(1)生成一個私鑰以及證書頒發請求。

Linux下實作CA認證
Linux下實作CA認證

(2)将證書頒發請求複制到CA伺服器上

Linux下實作CA認證

2、簽署證書

Linux下實作CA認證

3、将證書發送給用戶端(centos7)

Linux下實作CA認證

三、重新開機web伺服器

#service httpd restart

四、檢視證書

Linux下實作CA認證

結束了,一個完整的CA自簽證書認證已經完成了。

總結:整個建立證書的步驟:

1、建立私鑰CA:

            建立一對密鑰

           生成自簽證書

2、用戶端需要:

          建立一對密鑰

         生成頒發證書請求(請求檔案字尾為.crt)

         将請求發給CA

3、CA 簽署該請求,生成證書,再傳給用戶端

本文轉自 優果馥思 51CTO部落格,原文連結:http://blog.51cto.com/youguofusi/1970168