摘要:涉及到網路安全這一塊,想必大家都聽過CA吧。像百度、淘寶、京東等這些知名網站,每年都要花費一筆money來買CA證書。但其實簡單的企業內的CA認證,我們自己就可以實現,今天小編我就講解一下怎麼在企業局部實現CA認證。 一、CA介紹 1、電子商務認證授權機構(CA, Certificate Au ...
摘要:涉及到網路安全這一塊,想必大家都聽過CA吧。像百度、淘寶、京東等這些知名網站,每年都要花費一筆money來買CA證書。但其實簡單的企業內的CA認證,我們自己就可以實現,今天小編我就講解一下怎麼在企業局部實現CA認證。
一、CA介紹
1、電子商務認證授權機構(CA, Certificate Authority),也稱為電子商務認證中心,是負責發放和管理數字證書的權威機構,並作為電子商務交易中受信任的第三方,承擔公鑰體系中鑰的合法性檢驗的責任。
2、PKI: Public Key Infrastructure
簽證機構:CA (Certificate Authority)
註冊機構:RA
證書吊銷列表:CRL
4、實例:打開百度,按F12,可以查看百度的CA證書
二、創建私有CA和申請證書及簡單步驟說明
1、原理介紹:
我們以A端為CA機構,B端是申請證書的公司
2、A端自簽證書,自簽證書之前我們要,瞭解查看配置文件的說明 vim /etc/pki/tls/openssl.cnf,會告訴我們怎麼自簽證書,要求我們創建的東西放在哪些目錄下。
[ CA_default ]
dir = /etc/pki/CA # Where everything is kept 總目錄,把總目錄付給變數,下邊都用變數表示
certs = $dir/certs # Where the issued certs are kept 發佈的證書,若幹證書
crl_dir = $dir/crl # Where the issued crl are kept 證書吊銷列表
database = $dir/index.txt # database index file. 文本文件,資料庫,存放證書編號,簡單的索引
#unique_subject = no # Set to 'no' to allow creation of 是否允許多個證書用相同的subject(頒發給誰)
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs. 新頒發的證書放的地方
certificate = $dir/cacert.pem # The CA certificate 證書文件,第一個是自簽名證書
serial = $dir/serial # The current serial number 下一個要頒發證書的編號
crlnumber = $dir/crlnumber # the current crl number 吊銷列表的編號
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL 吊銷列表存放的文件
private_key = $dir/private/cakey.pem # The private key 私鑰放的地方
RANDFILE = $dir/private/.rand # private random number file 隨機數
3、申請證書時,要填寫的必要信息
[ policy_match ] 註意:match必須匹配,客戶端申請證書和CA頒發填寫的信息必須相同
stateOrProvinceName = match省、州
organizationName = match組織、公司名
organizationalUnitName = optional 部門
commonName = supplied 給哪個功能變數名稱頒發
emailAddress = optional[ policy_anything ] 郵件地址
3、B端證書申請及簽署步驟:
① 生成申請請求
② RA 核驗
③ CA 簽署
④ 獲取證書
三、A端創建私有CA
touch /etc/pki/CA/index.txt 生成證書索引資料庫文件
echo 99 > /etc/pki/CA/serial 指定第一個頒發證書的序列號,一般都是從01開始,也可以不從01開始,但一定要是2位或4位數,我們就以99為例
2、CA 自簽證書
(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem [-des3] 2048)
可以加密,也可以不加密,加過密,後邊每次都要輸入,為了試驗方便就不加密了,但加密更安全
tree /etc/pki/CA/ 可以看到cakey.pem 生成了
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem (req申請、-x509自簽名、cacert.pem)
-out / PATH/TO/SOMECERTFILE : 生成私鑰證書的保存路徑
③ 查看
cat /etc/pki/CA/cacert.pem 生成的證書文件,直接cat不能看到信息,用下邊的命令
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text (-text:生成的證書)
④ 也可以傳到windows上查看,要改尾碼,可以為cer/crt,不然不識別,sz發到windows上
四、B客戶端申請證書
1、centos 6 生成私鑰
(umask 066;openssl genrsa -out /app/service.key 2048)
2、利用私鑰生成證書請求文件, 在需要使用證書的主機生成證書請求
openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr
scp /app/service.csr 192.168.30.107:/etc/pki/CA
五、A端,簽署證書
1、為了方便管理,創建一個專門放請求的目錄,把請求都放在這個目錄下,不是必須的
openssl ca -in /etc/pki/CA/csr/service.csr -out /etc/pki/CA/certs/service.crt -days 100
openssl x509 -in /etc/pki/CA/certs/service.crt -noout -text
openssl ca -status 99 查看指定編號的證書狀態
也可以傳到windows上查看,看到更清楚,sz發到windows上
六、吊銷證書
openssl x509 -in / PATH/FROM/CERT_FILE -noout -serial -subject
2、在CA(B端) 上,根據客戶提交的serial 與subject 信息,對比檢驗是否與index.txt 文件中的信息一致,確認就吊銷證書:
openssl ca -revoke newcerts/99.pem
echo 01 > /etc/pki/CA/crlnumber
4、更新證書吊銷列表,將來將吊銷的列表放到互聯網上,讓大家知道
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text
也可以在windows上查看,sz發到windows上,尾碼改為.crl
好了,有關CA證書的東西就這些了。