ca分為公共信任ca和私有ca,若想使用公共信任的ca需要很多的money,如果想要在有限範圍内使用ca認證方式,可以自己建立一個。下面了解一下ca及其建立方法:
ca的配置檔案為 /etc/pki/tls/openssl.cnf,奧秘都在裡邊了。
建立私有ca的步驟:
說明:在配置為ca伺服器上生成一個自簽證書,并為為ca提供所需要的目錄及檔案,目錄包括:certs, crl, newcerts;檔案包括:serial,index.txt。即将以上目錄或檔案 在/etc/pki/ca/手動建立。
1. 生成私鑰,預設放置在/etc/pki/ca/private下
指令解析: umask 077:私鑰不能讓除本人之外的其他人所能檢視,是以要給予600權限。括号中的umask僅在子shell中起作用,并不影響目前shell; -out:将生成的私鑰存輸出至檔案中,此處要注意,/etc/pki/ca/private/cakey.pem 私鑰檔案名要與在ca的配置檔案中預設的私鑰檔案名一緻 private_key = $dir/private/cakey.pem 4096:指明私密長度 檢視私鑰檔案:
2. 生成自簽證書:将自簽證書放在/etc/pki/ca/中
注意:此過程中使用的是私鑰,這應該是不允許的,應該用公鑰自簽才對啊? 在此過程中會自動從私鑰中抽取出公鑰,并放到該目錄下,此處自簽的仍然是公鑰。 req:證書請求及證書生成工具 -new:生成新證書簽署請求 -x509:生成自簽格式證書,專用于建立私有ca;若不自簽則不用此參數 -key:生成請求時用到的私有秘鑰檔案路徑 -out:生成的請求檔案路徑;如果是自簽操作,則直接生成簽署過的證書; -days:證書的有效期限,機關是day;
-out:生成的請求檔案路徑;如果是自簽操作,則直接生成簽署過的證書 -days:證書的有效期限,機關是day 檢視生成的自簽證書:
3. 為ca提供所需要的目錄及檔案,給定一個序列号:
至此私有ca建立完畢。那如何讓其他伺服器到此私有ca簽證呢?需要用到證書進行安全通信的伺服器想ca請求簽署證書。
用戶端到ca簽署證書步驟:(此處以httpd服務為例進行建立,下面我将更換一個主機(centos6-01)做證書簽署操作。)
思路分析:需要在服務的目錄下建立一個ssl目錄,并在這個ssl目錄下建立一個私鑰和簽證請求。将請求發給ca,讓ca簽署書。
1. 在用到證書的主機上生成私鑰:
#在/etc/httpd/ssl目錄下建立一個名為httpd.key私鑰
2. 生成證書簽署請求
#在/etc/httpd/ssl/目錄中建立一個有效期限為365天、名為httpd.csr 簽證請求檔案。此處與ca建立時生成簽署請求一樣,從私鑰中抽取公鑰,并生成簽署請求檔案。因為是私有ca,此處的證書伺服器的公司名與證書頒發者要在一個機關,否則可能會通過不了。
3. 将此請求通過可靠的方式發給ca主機:一般情況下是ca住址用移動裝置考走,本次是使用遠端複制指令将請求檔案複制到ca主機上進行簽證。
到172.16.44.11主機上的/tmp中可看到簽證請求檔案。
4. 在ca主機上簽署證書;在ca主機上執行
簽證成功, httpd.crs檔案就可以删除了。data base update此處是更新/etc/pki/ca/中的index.txt資料,檢視證書中的資訊:
5. 将簽好的檔案發送到申請簽發主機上:
為保證資訊不洩露,可将請求簽署主機和ca主機上的httpd.csr檔案删除。
serial換成證書真正的序列号
3、 生成吊銷證書的吊銷編号(第一次吊銷證書時執行)
[root@centos7-01 newcerts]#echo 01 > /etc/pki/ca/crlnumber 吊銷序列号
4、 更新證書吊銷清單
[root@centos7-01 newcerts]#openssl ca -gencrl -out thisca.crl
檢視crl檔案:
[root@centos7-01 newcerts]#openssl crl –in /path/from/crl_file.crl -noout –text