您好,登錄后才能下訂單哦!
Openssl是Linux下的基礎(chǔ)安全工具
先簡要介紹一些基礎(chǔ)知識:
Openssl功能主要有:對稱加密(DES、3DES、AES等),非對稱加密(RSA),散列(MD5、SHA1等)以及證書的相關(guān)操作(創(chuàng)建、申請、頒發(fā)、吊銷等)
PKI體系成為公鑰加密體系,組成部分包括:認(rèn)證中心、注冊中心、證書庫、證書廢止列表。
Openssl常用證書格式:X509、PKCS7、PKCS12。
證書文件常用存儲格式:PEM(BASE64)、PFX或P12(二進(jìn)制)
本文主要實踐點(diǎn):
1、根CA相關(guān)操作(私鑰生成、生成自認(rèn)證證書)
2、用戶證書相關(guān)操作(私鑰生成、生成證書簽發(fā)請求文件、根CA同意請求簽發(fā)該證書)
3、次級CA證書相關(guān)操作(從根CA得到次級CA證書和次級CA私鑰之后,再給下屬用戶簽發(fā)證書)
實驗環(huán)境:
RHEL 6.3(KVM虛擬機(jī)) rootca.testlibq.com
RHEL 6.3(KVM虛擬機(jī)) apache.testlibq.com(以APACHE服務(wù)器為次級CA)
Windows XP(KVM虛擬機(jī)) xp.testlibq.com(以展示證書)
實驗步驟:
1、生成根CA證書
登錄到ROOTCA機(jī)器
cd /etc/pki/CA/private
openssl genrsa -des3 -out rootca.key 1024
#生成ROOTCA私鑰,rootca.key格式為PEM
[設(shè)置rootca私鑰密碼,例如輸入rootca]
touch /etc/pki/CA/index.txt #創(chuàng)建證書數(shù)據(jù)庫文件
echo "01" > /etc/pki/CA/serial #創(chuàng)建證書序號文件
openssl req -new -x509 -key rootca.key -out /etc/pki/CA/rootca.crt
#生成ROOTCA證書(類型為X509),rootca.crt格式為PEM
[輸入rootca私鑰密碼:rootca]
[填入一堆證書信息]
由于/etc/pki/tls/openssl.cnf中設(shè)置了CA的私鑰和證書路徑,所以這里使用軟鏈接。
ln -s /etc/pki/CA/private/rootca.key /etc/pki/CA/private/cakey.pem
ln -s /etc/pki/CA/rootca.crt /etc/pki/CA/cacert.pem
這樣,CA便設(shè)置好了。
查看證書和私鑰可以用以下命令:
openssl rsa -in /etc/pki/CA/private/rootca.key -text -noout
openssl x509 -in /etc/pki/CA/rootca.crt -text -noout
2、用戶證書的相關(guān)操作
PS:
用戶證書可以在用戶端生成私鑰和請求文件,然后傳遞至CA,由CA簽發(fā)后,發(fā)給用戶。
也可以由根CA生成用戶私鑰和請求文件,然后簽發(fā)后把私鑰和證書發(fā)給用戶。
這里演示后者。
登錄到rootca機(jī)器(接實驗1)
cd /etc/pki/CA/private
openssl genrsa -des3 -out a.key 1024 #生成用戶私鑰
[set password of a.key]
openssl req -new -key a.key -out a.csr #生成用戶請求文件
[input password of a.key]
[輸入一堆證書信息]
openssl ca -in a.csr
[y,y]
生成證書位于/etc/pki/CA/newcerts/01.pem
PS:
該證書類型為X509,若需要PKCS12類型證書,請使用
openssl pkcs12 -export -in /etc/pki/CA/newcerts/01.pem -inkey /etc/pki/CA/private/a.key -out a.pfx[輸入私鑰密碼][設(shè)置傳輸密碼]
3、生成證書鏈
此節(jié)內(nèi)容網(wǎng)上文章較少,我研究了好久才搞出來。
首先上面兩個實驗是連著做的,第三個實驗請把上面的環(huán)境清除。
登錄到ROOTCA
cd /etc/pki/CA/private
touch ../index.txt
echo "01" > ../serial
openssl genrsa -des3 -out rootca.key 1024 [rootca]
ln -s rootca.key cakey.pem
openssl req -new -x509 -key rootca.key -out /etc/pki/CA/rootca.crt -extensions v3_ca
ln -s /etc/pki/CA/rootca.crt /etc/pki/CA/cacert.pem
這里查看一下rootca證書:
openssl x509 -in /etc/pki/CA/rootca.crt -text -noout
確定extensions中,有basicConstraint CA:TRUE,那么代表正確。
PS:basicConstraint稱為基礎(chǔ)約束,若有CA:TRUE,證明該證書具有CA效力。(所以上述實驗1、2中并不嚴(yán)謹(jǐn),這點(diǎn)在需要證書鏈的場合尤為重要)
cd /etc/pki/CA/private
openssl genrsa -des3 -out apache.key 1024 [apache]
openssl req -new -key /etc/pki/CA/private/apache.key -out apache.csr
[apache][一堆證書信息]
openssl ca -in apache.csr -extensions v3_ca[y,y]
PS:這個extensions至關(guān)重要,關(guān)系到apache這個證書有沒有資格再頒發(fā)證書給用戶。
登錄到apache主機(jī)
rsync rootca.testlibq.com:/etc/pki/CA/private/apache.key /etc/pki/CA/private/apache.key
[root password of rootca.testlibq.com]
rsync rootca.testlibq.com:/etc/pki/CA/newcerts/01.pem /etc/pki/CA/apache.crt
[root password of rootca.testlibq.com]
ln -s /etc/pki/CA/private/apache.key /etc/pki/CA/private/cakey.pem
ln -s /etc/pki/CA/apache.crt /etc/pki/CA/cacert.pem
下面制作用戶證書
cd /etc/pki/CA
touch index.txt
echo "01" > serial
openssl genrsa -des3 -out private/user1.key 1024 [user1]
openssl req -new -key private/user1.key -out private/user1.csr[user1][一堆證書信息]
openssl ca -in private/user1.csr -extensions usr_cert[y,y]
PS:這里-extensions usr_cert不必要。
制作證書鏈
rsync rootca.testlibq.com:/etc/pki/CA/rootca.crt /etc/pki/CA/certs/rootca.crt
[root password of rootca.testlibq.com]
將rootca的證書和apache的證書整合到一個文件
cd /etc/pki/CA/certs
cp /etc/pki/CA/apache.crt chain.pem
cat rootca.crt >> chain.pem
驗證證書鏈
openssl verify -CAfile /etc/pki/CA/certs/chain.crt /etc/pki/CA/newcerts/01.pem
(若顯示Verify OK,表示驗證證書鏈成功)
轉(zhuǎn)換用戶證書為PKCS12
openssl pkcs12 -export -in /etc/pki/CA/newcerts/01.pem -inkey /etc/pki/CA/private/user1.key -out /etc/pki/CA/private/user1.pfx -chain -CAfile /etc/pki/CA/certs/chain.crt
最后將user1.pfx復(fù)制到Windows中,導(dǎo)入證書,便于展示。
結(jié)果如圖:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。