步驟一
首先我們要知道CA的配置文件
openssl的配置文件:/etc/pki/tls/openssl.cnf
我們打開這個配置文件
這文件中很多跟CA相關的信息如圖
解釋:
我們可以搭建好幾個CA,那么誰是默認的?圖中① “=”號后面的信息就是默認的CA
圖中②是默認CA的信息
依次表示:
dir行:存放CA所有信息的目錄,比如編號,證書等等
certs行:證書存放的位置
crl_dir行:證書吊銷列表,存放吊銷證書的位置
database行(數據庫):存放證書信息,如10個人申請了證書,就存放10行信息
unique_subject=no行:指的的是是否允許對一個主題申請多個證書(這里注銷掉了,也就是說默認不允許)
new_certs_dir行(新證書的文件夾):存放新證書的位置
certificate行(ca的證書文件名):自己的證書
serial行(序列號):證書的編號存放位置,寫的是下一個證書的編號,如現在頒發了10個人那么這里寫的是11
crlnumber行(吊銷證書的編號):吊銷證書編號存放位置
crl行:存放證書吊銷列表文件的路徑
private_key(私鑰)行:CA的私鑰公鑰證書位置
RANDFILE行:隨機文件
圖二:
上圖信息說明:
policy 行:是策略,這個策略采用的是“=”號后面的policy_match
圖中第二個方框是policy_mach策略的具體信息
(我們搭建CA要提供,必須信息,比如國家,省份,公司,部門等等,客戶端申請證書也要提交這些信息,那有哪些要必須一致的呢?就要用match來定義)
上圖有三項必須一致的
countryName:國家
stateOrProvinceName:省份
organizationName:公司名
為什么要必須一致呢?因為我們搭建的是私有CA,只有在公司內部使用
一、下面我們開始正式搭建CA
首先准備兩台主機,客戶端與CA服務器端
1、首先在CA端創建CA的私鑰信息,進入CA文件夾cd /etc/pkiCA
安全生成私鑰方法:
openssl genrsa -out private/cakey.pem -des3 2048 #這里私鑰的位置與名字必須和上面的配置文件里面設置的一致,2048是加密位 #這是對私鑰進行了des3加密,每次使用私鑰都要輸入口令,也可以用umask權限來設置
如圖
私鑰以建立完成
2、實現自簽名的證書
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 #req是申請的意思 #-new是表示新建 #因為我們是自己給自己簽名,所以加上一個 -x509,沒有這個表示向別人申請證書 #-key私鑰位置 #-out輸出,我們證書存放位置在哪里?上面配置文件里面定義了,因為我現在在CA文件目錄里,直接寫,文件名就OK #-days 3650是有效期,10年
如圖:
這里我們前面設置了私鑰密碼,所有要輸入口令,之后就是讓你輸入一些信息,就是上面的國家,省份,市區,公司,部門等等信息。
如圖
可以查看CA信息文件
也可在win系統查看
3、讓win系統信任此證書
控制面板--internet 選項--內容--證書--受信任的根證書頒發機構--導入
也可直接打開cacert.cer文件 單擊 安裝證書
到此根證書創建完畢,下面來創建客戶端來向CA服務器端申請證書
二、客戶端申請證書
假設有一個軟件,這個軟件是應用程序,給自己的軟件使用證書,就要申請證書。
步驟和上面的大同小異
1、生成私鑰,這回我們換另一種安全生成私鑰的方式,首先我們要進入這個軟件的文件夾,執行
(umask 066;openssl genrsa -out app.key 1024) #()相當於子shell 當前umask默認值還是022沒變 #app.key是生成的文件,入http要用就放在http專門的文件夾里面
2、利用私鑰生成證書申請文件
openssl req -new -key app.key -out app.csr
3、把申請的證書信息傳到CA服務器
#這個/etc/...目錄是可以換的
4、CA服務器給客戶端頒發證書
給客戶端頒發證書要有下面這兩個文件夾
5、執行命令
ca -in app.csr -out app.cer -days 100
6、把證書傳給客戶端 放在必要的目錄下,在win系統上查看下
OK結束
歡迎補充 ![]()



![clipboard[12] clipboard[12]](/image/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTQzMjc1MC8yMDE4MDcvMTQzMjc1MC0yMDE4MDcwODE2MzMxNzY0Mi0xNDEwODM2MjEucG5n.png)
![clipboard[16] clipboard[16]](/image/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTQzMjc1MC8yMDE4MDcvMTQzMjc1MC0yMDE4MDcwODE2MzMxODI4MC0xMTAzMDUxNTc3LnBuZw==.png)
![clipboard[17] clipboard[17]](/image/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTQzMjc1MC8yMDE4MDcvMTQzMjc1MC0yMDE4MDcwODE2MzMxODk1Mi0xMTM3NzQ0NS5wbmc=.png)
![clipboard[21] clipboard[21]](/image/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTQzMjc1MC8yMDE4MDcvMTQzMjc1MC0yMDE4MDcwODE2MzMyMDgxOS0xNjc3Mzk5Mzg5LnBuZw==.png)
![clipboard[22] clipboard[22]](/image/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTQzMjc1MC8yMDE4MDcvMTQzMjc1MC0yMDE4MDcwODE2MzMyMTU1Ni0xMjE2NzQxNDUzLnBuZw==.png)
![clipboard[28] clipboard[28]](/image/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTQzMjc1MC8yMDE4MDcvMTQzMjc1MC0yMDE4MDcwODE2MzMyMjA5Ny0yMDEwODY2NjQ1LnBuZw==.png)
![clipboard[30] clipboard[30]](/image/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTQzMjc1MC8yMDE4MDcvMTQzMjc1MC0yMDE4MDcwODE2MzMyMjgyMC0xNTUwNDI5OTYyLnBuZw==.png)