OpenSSL(私有CA)
1.系統環境
2.軟件環境
二、OpenSSL相關文件
1.配置文件
2.相關選項
二、OpenSSL:創建私有證書簽發機構CA步驟
在確定配置為CA的服務器主機上生成一個自簽證書,並為CA提供所需要的目錄及文件;
在真正的通信過程中CA服務器主機不需要網絡參與,只需要參與到簽名中,不需要提供服務
1.生成私鑰;
~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
因為在默認配置文件中默認配置/etc/pki/CA/private/cakey.pem,所以指定目錄和文件名要和配置文件一致
wKioL1aPCOWTno1lAAHDWpax0Kw301.jpg
2.生成CA自簽證書;
req - PKCS#10 certificate request and certificate generating utility,證書請求及生成工具;
[root@localhost tmp]# man req
wKiom1aPCL6xJ27aAADQWnrHrbY384.jpg
~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
/etc/pki/CA/cacert.pem:配置文件中第一的目錄及文件名稱
-new:生成新證書簽署請求;
-x509:生成自簽格式證書,專用於創建私有CA時;
-key:生成請求時用到的私有文件路徑;
-out:生成的請求文件路徑;如果自簽操作將直接生成簽署過的證書;
-days:證書的有效時長,單位是day;
註意:
1)-key /etc/pki/CA/private/cakey.pem指明的是私鑰的位置,知識因為此處會自動抽取出私鑰中的公鑰
2)req只能發起簽署請求,需要加-x509參數實現自己發出請求,自己簽署。非自簽無需增加此參數
wKiom1aPCMjBB-SEAAPoGzliXHo264.jpg
[root@localhost tmp]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
====================================填寫證書請求相關信息=======================================
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
Country Name (2 letter code) [XX]: # 兩個字符表示的國家代碼,CN為中國
State or Province Name (full name) []: # 省或洲的完整名稱
Locality Name (eg, city) [Default City]: # 所在位置的名稱(默認為城市)
Organization Name (eg, company) [Default Company Ltd]: # 組織機構名稱(默認為公司)
Organizational Unit Name (eg, section) []: # 組織機構單元名稱(eg.部門)
Common Name (eg, your name or your server‘s hostname) []: # 持有者名或者所在服務器主機名(即域名)
Email Address []: # 管理員郵件地址,可以省略
================================================================================================
3.為CA提供所需的目錄及文件;
~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts} #當不存在時需要創建簽發證書、吊銷證書、新證書目錄
~]# touch /etc/pki/CA/{serial,index.txt} #創建證書序列號文件、證書索引文件
~]# echo 01 > /etc/pki/CA/serial # 第一次創建的時候需要給予證書序列號
wKiom1aPCNGROuarAALaFb1jY-0436.jpg
三、OpenSSL;服務申請證書簽署實現SSL安全通信
要用到證書進行安全通信的服務器,需要向CA請求簽署證書;
需要簽署的服務無需和CA證書簽署機構主機在同一臺服務器上。
此處以httpd服務為例進行演示,步驟如下:
演示環境:
httpd服務放置172.16.249.210主機(此處為rpm包安裝)
wKioL1aPCQDDWkCEAAEYveFMHKI944.jpg
CA私有簽機構放置172.16. 249.18主機:
wKioL1aPCQrwsRifAAIBzb8XPA0330.jpg
1.用到證書的服務器生成私鑰;
~]# mkdir /etc/httpd/ssl
~]# cd /etc/httpd/ssl
~]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) # 生成私鑰
生成httpd服務的私鑰創建時候無需在/etc/pki/CA創建,/etc/pki/CA目錄僅在創建CA主機時候
wKiom1aPCOThiloPAAGASNpnvNM524.jpg
2.生成證書簽署請求
~]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
1) *.csr表示證書簽署請求文件
2)要保證和簽署機構CA簽署機構信息一致
wKiom1aPCO3TjJrZAANreKGDHqE787.jpg
3.將請求通過可靠方式發送給CA主機
~]# scp /etc/httpd/ssl/httpd.csr [email protected]:/tmp/
wKioL1aPCRjD***2AACu_WHGEiM513.jpg
4.在CA主機上簽署證書
~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
*.crt:表示證書文件
-days :簽署證書的有效期
註意:此處需要自己去查看信息是否正確,並確定是否給予簽署證書
wKioL1aPCSLiKmtaAAPZ6a-sqPs536.jpg
5.查看所簽署的證書信息
方法一:~]# cat /etc/pki/CA/index.txt
wKiom1aPCPvjdxCfAAC8VggKWf0855.jpg
V:表示已經簽署的
01:表示證書序列號
/C=CN/ST=Beijing/O=… ...: 表示主題信息(主題標示)
方法二:查看證書中的信息(CA或者服務端均可):
~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
-serial :序列號 -subject:主題信息
wKiom1aPCP-gmS13AADaLgDGKfE704.jpg
6.將CA簽署機構的.crt證書發送給服務器
~]# scp /etc/pki/CA/certs/httpd.crt [email protected]:/etc/httpd/ssl
註意:第一次進行主機間基於ssh的scp操作會接收一個證書,Queue要你那認證
wKioL1aPCTDz4NpfAAIKbQcNO1s991.jpg
7.刪除服務器和CA主機上簽署前的*.csr文件,確保安全
httpd主機:~]# rm -rf /etc/httpd/ssl/httpd.csr
CA主機:~]# rm -rf /tmp/httpd.csr
四、OpenSSL:私有CA證書簽署機構吊銷證書
1.客戶端獲取要吊銷的證書的serial(在使用證書的主機上執行)
~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
wKioL1aPCTTiBKRtAAGKNLOArLQ073.jpg
2.CA主機吊銷證書
先根據客戶提交的serial和subject信息,對比其與本機數據庫index.txt中存儲的是否一致;
在/etc/pki/CA/crets/*下生成證書後,會在/etc/pki/CA/newcrets/*以對應證書命名為SERIAL.pem文件存放
wKiom1aPCRPSaUfiAANKOGMJ9OQ686.jpg
吊銷:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem 其中SERIAL要換成證書真正的序列號:eg. 01.pem
wKioL1aPCUCQ72KSAAC-hpFwx2o912.jpg
3.生成吊銷證書的吊銷編號(第一次吊銷證書時執行)
echo 01 > /etc/pki/CA/crlnumber
wKiom1aPCRrx6JiSAAB1Kg9aYOk479.jpg
4.更新證書吊銷列表
openssl ca -gencrl -out thisca.crl
wKiom1aPCRyB8sqXAACEmF02TAg768.jpg
5.查看crl文件:
openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
OpenSSL(私有CA)