自建CA證書認證
CA證書認證通常包含三部分,CA認證服務器、業務服務器、客戶端,也可以簡單分成兩部分CA/業務服務器,和客戶端
CA服務器
生成私鑰(pem)
openssl genrsa -out cakey.pem -des 2048
gen:生成 rsa:加密算法 out:輸出 des:祕鑰加密口令(可加可不加) 2048:祕鑰生成長度(2048 bits),默認1024
生成根證書籤發請求(csr)
openssl req -new -key cakey.pem -out cakey.csr
生成自簽發根CA證書
創建CA的方式有多種,可以分別使用req、x509、ca 等僞命令來創建和簽發CA證書
-
req
openssl req -new -x509 -key cakey.pem -days 365 -out cacert.pem -
x509
openssl x509 -req -in cakey.csr -signkey key.pem -out cacert.pem -
ca
openssl ca -selfsign -keyfile cakey.pem -in cakey.csr -batch -out cacert.pem
這是採用 etc/pki/tls/openssl.cnf 默認文件的配置方式生成CA證書,是比較規範推薦的生成方式,
採用默認配置 -key 、-signkey、-keyfile等屬性可以不用添加,系統會到默認文件夾下自己加載
使用默認配置文件方式必須提前按照規定創建好index.txt和serial文件,其他文件和文件夾的命名也必須一致,看相關重要文件夾
獲取serial
獲取客戶端/服務端證書的serial
openssl x509 -in client.crt/server.crt -noout -subject
吊銷證書
對比獲取到的serial序列號是否與index數據庫中的信息一致,一致吊銷證書
openssl ca -revoke serial.pem
serial爲new_certs_dir文件夾下要吊銷的證書編號與在客戶端或者服務端查出的serial一致
刷新吊銷列表
第一次要生成吊銷證書序號echo 00 > /etc/pki/CA/crlnumber
openssl ca -gencrl -out crl.crl
業務服務端
生成私鑰(pem)
openssl genrsa -out server.pem -des 2048
生成證書籤發請求(csr)
openssl req -new -key server.pem -out server.csr
由根CA頒發證書
openssl ca -in server.csr -out server.crt -days 100
客戶端
生成私鑰(pem)
openssl genrsa -out client.pem -des 2048
生成證書籤發請求(csr)
openssl req -new -key client.pem -out client.csr
由根CA頒發證書
openssl ca -in client.csr -out client.crt -days 100
相關重要文件夾
dir = /etc/pki/CA
certs = $dir/certs //證書歸檔文件夾
database = $dir/index.txt //證書數據庫
new_certs_dir = $dir/newcerts //新頒發證書文件夾
certificates = $dir/cacet.pem //Root CA
serial = $dir/serial //下一個頒發證書的序列號,由16進制數字構成最低2位
private_key = $dir/private/cakey.pem //私鑰
其他命令
-
生成用戶密碼口令
openssl passwd -1 -salt
-1 爲使用的加密算法(hash),-salt是加鹽(最長8bits),可以隨機或者自己在後面指定 -
加密
openssl enc -e -des3 -a -salt -in encode.txt -out encode.enc
enc:加密/解密 -e:加密 -des3:加密算法 -salt:加鹽 -in:輸入文件 -out:輸出文件 -
解密
openssl enc -d -des3 -a -salt -in encode.enc -out encode.encd
-d:解密
從私鑰中獲取公鑰
openssl rsa -in cakey.pem -pubout -out cakey.pubkey
顯示證書信息
openssl x509 -in server.csr -noout -text
查看crl文件
openssl crl -in crl.crl -noout -texttls:傳輸層安全協議 Transport Layer Security的縮寫
ssl:安全套接字層 Secure Socket Layer的縮寫
csr:是Certificate Signing Request的縮寫,即證書籤名請求,這不是證書
crt:即 certificate的縮寫,即證書。linux/unix常用的證書後綴,一般爲ascii文件cer:是crt的替代形式,windows常用證書的後綴,一般爲二進制文件。證書中沒有私鑰
pem:Privacy Enhanced Mail,打開看文本格式,以"-----BEGIN…"開頭, "-----END…"結尾,內容是BASE64編碼
====================================================================================
注:
本文屬於作者原創,如需轉載,請註明。
內部如果引用的文字,連接,圖片等資源存在侵犯原作者的情況,請聯繫本人,立即刪除。