自建CA證書認證

自建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 -text

tls:傳輸層安全協議 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編碼

====================================================================================

注:
本文屬於作者原創,如需轉載,請註明。
內部如果引用的文字,連接,圖片等資源存在侵犯原作者的情況,請聯繫本人,立即刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章