1. 程式人生 > >在Linux系統中實現CA

在Linux系統中實現CA

linux、創建ca

前言


CA是證書的簽發機構,它是PKI的核心。CA是負責簽發證書、認證證書、管理已頒發證書的機關。

它要制定政策和具體步驟來驗證、識別用戶身份,並對用戶證書進行簽名,以確保證書持有者的身份和

公鑰的擁有權。。

CA 也擁有一個證書(內含公鑰)和私鑰。網上的公眾用戶通過驗證 CA 的簽字從而信任 CA ,任

何人都可以得到 CA 的證書(含公鑰),用以驗證它所簽發的證書。

如果用戶想得到一份屬於自己的證書,他應先向 CA 提出申請。在 CA 判明申請者的身份後,便為他分

配一個公鑰,並且 CA 將該公鑰與申請者的身份信息綁在一起,並為之簽字後,便形成證書發給申請

者。如果一個用戶想鑒別另一個證書的真偽,他就用 CA 的公鑰對那個證書上的簽字進行驗證,一旦驗

證通過,該證書就被認為是有效的


一、CA端


認識CA配置文件:/etc/pki/CA

技術分享

其中,certs表示存儲簽署證書;crl表示證書吊銷列表;private表示私鑰存儲的位置。newcerts我們在

創建密鑰對時,系統會自動生成證書列表,存儲在newcerts目錄下。

1、創建所需文件:

技術分享

其中,index.txt表示生成證書索引數據庫文件;serial表示下一次頒發證書的序列號,01表示頒發證書的

第一個序號為01。

2、CA生成自簽署證書

生成密鑰對:

技術分享

生成自簽證書:

技術分享

其中 -new:表示生成新證書簽署請求;

-x509:表示專用於CA生成自簽證書;

-key:生成新證書簽署請求時用到的私鑰文件;

-days:表示證書的有效期,默認單位:年;

-out:表示生成的簽署證書保存的位置;

我們可以導出該證書到Windows中看看。

技術分享


二、CA-client端


認識CA配置文件:/etc/pki/tls ,該目錄中的文件和/etc/pki/CA中的大體一樣,只是後者是用作給

別人簽署時的文件,前者是存放申請自簽證書請求相關的文件。

1、生成私鑰文件

技術分享

這次我們選擇不加密私鑰文件,去掉了-des3選項

2、生成證書申請文件

技術分享

上述生成證書簽署請求我們可以不指定證書的有效期,因為是CA給你頒發,時間是有CA決定的,所以我

在這裏就沒有寫有效日期;其次,由於不是自簽署證書,所以沒有x509選項

3、將證書簽署請求文件傳輸至CA

技術分享

使用scp命令進行遠程復制時必須要保證兩臺主機都安裝scp服務才可以,有一個沒安裝,復制都將失

敗。scp服務所在的包為openssh包,使用yum -y install openssh-client安裝,如果沒有配置yum倉

庫,請閱讀博客:http://vinsent.blog.51cto.com/13116656/1962172


三、CA簽署證書並發送給CA-client


之前將CA-client的證書申請傳送給了CA,接下來CA便要簽署該證書,給他蓋個戳。

技術分享

請仔細閱讀證書中的內容,重點地方都標記出來了,如果沒有問題那麽CA-client的證書請求將簽署

成功。你可以查看文件index.txt來查看其信息:

技術分享

復制該證書至CA-client

[ [email protected] CA ]#scp certs/app.crt 172.18.252.50:/etc/pki/tls/certs


四、吊銷證書


證書信息存儲在index.txt文件中,我們要想吊銷其中的證書,首先需要創建吊銷列表的編號:

echo 01 > /etc/pki/CA/crlnumber。然後使用openssl命令在加上證書(該證書存儲在/etc/pki/CA

/newcerts/01.pem)來吊銷列表。例如:openssl ca revoke /etc/pki/CA/nercerts/01.pem

但是,我們光吊銷了證書還不行,必須發布到CRL中才可,告知其他用戶,該證書已經失效。使用命令

openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem 更新吊銷列表。你可以將該文件導出至Windows中

查看其吊銷列表。


五、補充


假如你還想給另外的服務申請證書,由於之前生成過密鑰對,那麽你直接生成申請證書即可,

[ [email protected] tls ]#openssl req -new -key private/app.key -out app2.csr;然後重復上述步驟,

在簽署一遍即可。在提供給大家幾個查看證書信息的命令:

openssl x509 -in /etc/pki/CA/crts/app.crt -noout -text|issuer|subject|serial|dates

如果你還有一個主機,你想用上述的CA-client繼續為其他主機簽署證書,大體步驟與上述流程一

致,不過值得註意的是:你在生成證書subca.csr的時候不在是自己簽署(即沒有x509選項),你需要根

CA為你簽署。

到此我們就完成CA證書的簽署、當然了這只是實現CA的創建與簽署,並沒有加以使用,如果你有

相關的服務,例如:http。謝謝閱讀~


本文出自 “vinsent” 博客,轉載請與作者聯系!

在Linux系統中實現CA