目錄
一、前言
二、openssl介紹
三、openssl的常用用法
(一)單向加密
(二)生成隨機數(shù)
(三)生成公鑰,私鑰
1.生成私鑰
2.提取公鑰
四、搭建CA
(一)創(chuàng)建根CA私鑰:
(二)生成自簽名證書
(三)創(chuàng)建數(shù)據(jù)庫以及新頒發(fā)證書數(shù)字
(四)設(shè)置證書的起始編號
(五)創(chuàng)建文件夾儲存用戶信息
五、頒發(fā)證書
(一)生成服務(wù)器自己的私鑰
(二)為服務(wù)器申請證書
(三)CA簽署服務(wù)器的證書
(四)驗證證書是否有效
六、吊銷證書
?文章來源地址http://www.zghlxwxcb.cn/news/detail-460440.html
一、前言
數(shù)字證書與CA的介紹:
證書是建立公共密鑰和某個實體之間聯(lián)系的數(shù)字化的文件。它包含的內(nèi)容有:版本信息(X.509也是有三個版本的)、系列號、證書接受者名稱、頒發(fā)者名稱、證書有效期、公共密鑰、一大堆的可選的其他信息、CA的數(shù)字簽名。證書由CA頒發(fā),由CA決定該證書的有效期,由該CA簽名。每個證書都有唯一的系列號。證書的系列號和證書頒發(fā)者來決定某證書的唯一身份。
?CA是第三方機構(gòu),被你信任,由它保證證書的確發(fā)給了應(yīng)該得到該證書的人。CA自己有一個龐大的public key數(shù)據(jù)庫,用來頒發(fā)給不同的實體。CA也是一個實體,它也有自己的公共密鑰和私有密鑰。
openssl可以生成CA的證書文件,私鑰,可實現(xiàn)加解密以及數(shù)字簽名的功能。
二、openssl介紹
openssl是一款開放源代碼軟件包,通過命令行形式執(zhí)行,包含了ssl協(xié)議庫,應(yīng)用程序以及密碼算法庫,集成了安全套接字層密碼庫,囊括主要的密碼算法、常用密鑰、證書封裝管理功能及實現(xiàn)ssl協(xié)議。
三、openssl的常用用法
(一)單向加密
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary] [-out filename]
[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] : 指可以用來加密的內(nèi)容
-out filename指可以把加密內(nèi)容保存到特定文件中
(二)生成隨機數(shù)
openssl rand -base64|-hex NUM
可選base64或hex(十六進(jìn)制)? ??
NUM:生成隨機數(shù)的字節(jié)長度
(三)生成公鑰,私鑰
1.生成私鑰
需要使用genrsa命令生成私鑰,然后從生成的私鑰中提取公鑰
openssl genrsa [-out filename] [-des | -des3 | -idea] [numbits]
-out filename : 將生成的私鑰保存至特定文件中
-des | -des3 | -idea?: 可選用的密碼學(xué)算法
numbits :生成的私鑰長度,單位是字節(jié),一般是2048
2.提取公鑰
openssl rsa [-in filename] [-out filename] [-pubout]
-in filename : 公鑰對應(yīng)的私鑰存儲文件
-out filename : 提取出公鑰后儲存的文件
-pubout :公鑰
四、搭建CA
(一)創(chuàng)建根CA私鑰:
openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048
(二)生成自簽名證書
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.crt -days 3650
(三)創(chuàng)建數(shù)據(jù)庫以及新頒發(fā)證書數(shù)字
touch /etc/pki/CA/index.txt
touch /etc/pki/CA/serial
(四)設(shè)置證書的起始編號
echo 01 > /etc/pki/CA/serial
(五)創(chuàng)建文件夾儲存用戶信息
cd /etc/pki/CA
mkdir data
五、頒發(fā)證書
(一)生成服務(wù)器自己的私鑰
openssl genrsa -out /etc/pki/CA/data/server.key 2048
(二)為服務(wù)器申請證書
openssl req -new -key /etc/pki/CA/data/server.key -out /etc/pki/CA/certs/server.csr
注意:前四項填寫必須和CA相同,且server' s hostname必須是申請服務(wù)器的ip地址或者域名
(三)CA簽署服務(wù)器的證書
openssl ca -in /etc/pki/CA/certs/server.csr -cert /etc/pki/CA/cacert.crt -keyfile /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/certs/server.crt -days 36500
(四)驗證證書是否有效
openssl verify -verbose -CAfile /etc/pki/CA/cacert.crt /etc/pki/CA/certs/server.crt
顯示ok的話就可以了
?
將得到的server.crt和server.key發(fā)給服務(wù)器,在其ssl配置文件中導(dǎo)入即可實現(xiàn)http到https的轉(zhuǎn)換。如果需要瀏覽器通過https安全訪問web服務(wù)的話,還需要在瀏覽器中導(dǎo)入CA的自簽名證書
六、吊銷證書
由于撤銷證書的命令在openssl配置文件中指定了CA字簽名證書的名稱,所以在撤銷證書前,需要先改一下CA自簽名證書的后綴名:
mv /etc/pki/CA/cacert.crt /etc/pki/CA/cacert.pem
? (一)查看證書serial信息
openssl x509 -in /etc/pki/CA/cacert.pem -noout -serial -subject
?比對成功后,進(jìn)行撤銷
(二)吊銷證書
openssl ca -revoke /etc/pki/CA/newcerts/01.pem
(三)查看證書狀態(tài)
openssl ca -status 01
(四)定義證書撤銷列表的起始編號
echo 01 > /etc/pki/CA/crlnumber
(五)更新證書撤銷列表??
openssl ca -gencrl -out /etc/pki/CA/crl.pem
(六)查看證書撤銷列表
openssl crl -in /etc/pki/CA/crl.pem -noout -text
參考鏈接:
【CentOS 7+Apache】5分鐘完成服務(wù)器搭建+全站HTTP轉(zhuǎn)HTTPS_嗶哩嗶哩_bilibili
CentOS搭建基于Apache與OpenSSL自簽名證書的HTTPS服務(wù)并解決客戶端瀏覽器信任問題_aptx4869_li的博客-CSDN博客_centos httpd openssl
Centos7創(chuàng)建CA和申請證書 - mingzhang - 博客園 (cnblogs.com)文章來源:http://www.zghlxwxcb.cn/news/detail-460440.html
?
到了這里,關(guān)于開源CA搭建-基于openssl實現(xiàn)數(shù)字證書的生成與分發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!