1. 程式人生 > 實用技巧 >建立私有CA和頒發證書

建立私有CA和頒發證書

證書申請及簽署步驟:

  1、生成申請證書

  2、RA核驗

  3、CA簽署

  4、獲取證書

建立私有CA和申請證書

  建立私有CA:

    openssl的配置檔案:

/etc/pki/tls/openssl.cnf 

機器可以搭建多個ca ,預設使用的ca是CA_default

存放位置 具體用處
dir /etc/pki/CA 主要的資料
certs $dir/certs 頒發的證書
crl_dir $dir/crl 證書吊銷列表
datebase $dir /index.txt 證書頒發後存的資料庫檔案
new_certs_dir $dir/newcerts 新頒發的證書
certificate $dir/cacert.pem ca自己的證書檔案
serial $dir/serial 下一個要頒發證書的證書編號
crlnumber $dir/crlnumbe 證書吊銷列表的編號
crl $dir/crl.pem 被吊銷的證書列表檔案
private_key $dir/private/cakey.pem 存放ca的私鑰
RANDFILE $dir/private/.rand 存放私鑰用到的隨機數
預設的設定 時長
default_days 365 預設的證書有效期
default_crl_days 30 預設的吊銷列表
default_md sha256 用到的演算法

policy    policy_match 搭建的ca到底給誰自己服務的 和使用者填寫的是否相同
countryName 國家 match     相同
stateOrProvinceName 省/州 match     相同
organizationName 組織/公司名 match     相同
organizationalUnitName 辦公部門 optional    可選的
commonName 頒發的證書是給那個服務用的 supplied    必須提供
emailAddress 郵箱地址 optional    可選的

  

 

policy_anything

給其他公司使用的
countryName 國家 optional
stateOrProvinceName 省/州 optional

localityName

本地名,內部名 optional
organizationName 組織/公司名 optional
organizationalUnitName 辦公部門 optional
commonName 頒發的證書是給那個服務用的 optional
emailAddress 郵箱地址 optional

建立私有CA,為使用者頒發證書

一、搭建CA

1、進入這個目錄

cd /etc/pki/CA/

2、生成私鑰

(umask 077;openssl genrsa -out private/cakey.pem 4096)

3、自簽名(req申請,不帶x509表示是向ca申請證書,-key私鑰檔案 ,-out輸出 -days指定時間

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

互動式多行重定向,可用於指令碼時:

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650 <<EOF
> CN
> Shanghai
> ShangHai
> alex
> alex.com > Lv_ZhengYuan@163.com > EOF

直接檢視這個檔案是base64的格式,可以轉換成文字格式檢視

openssl x509 -in cacert.pem -noout -text

可以匯出到Windows中修改後綴為crt檢視

sz cacert.pem

4、建立index.txt檔案具體意思上面有寫

touch /etc/pki/CA/index.txt

5、建立serial,這個檔案裡面需要寫16進位制的編號(0F =15,下一個編號就是16,正常從0開始編號,這只是為了記得更清楚)

echo 0F > /etc/pki/CA/serial

二、申請證書

需要申請證書的機器上,證書最好放在服務的資料夾裡 我當前存放的是/data/app資料夾裡

cd /data/app

生成私鑰檔案

(umask 066;openssl genrsa -out app.key 1024)

通過私鑰檔案,申請證書(私有證書,國家、省、公司名必須一樣) 輸入必須資訊

openssl req -new -key app.key -out app.csr

把生成的申請檔案傳輸給ca伺服器的/data/裡

scp app.csr 172.16.8.180:/data/

三、頒發證書

ca伺服器收到申請檔案,就可以頒發證書了

openssl ca -in /data/app.csr -out /etc/pki/CA/certs/app.crt -days 100

如果報錯如下圖,就說明缺少index.txt檔案

touch /etc/pki/CA/index.txt

繼續執行命令,如果報錯如下圖:說明缺少檔案serial

echo F > /etc/pki/CA/serial

如果還報錯的話,表示剛剛上面步驟中的三種必須相同的資訊有不同的

檢視是否確認無誤,如果確認沒有問題就輸兩遍y確定

如下圖:證書就生成了

下圖對應的檔案或資料夾用處

certs下的 app.crt剛剛生成的證書

private下的0F.pem是app.crt的備份檔案,系統自己生成的

index.txt 放證書資訊(v 表示當前證書是有效的)

index.txt.old ,系統自己生成的備份,這次還沒有生成證書前的index.txt備份

serial.old系統自己生成的備份,這次還沒有生成證書前的serial備份

在windows中檢視,但是因為頒發給他的根ca現在還是不可信的,所以這個證書也是不可信的

兩種辦法

一、

1、直接點選根ca的安裝證書

2、按需選擇,是安裝到當前使用者,還是當前計算機

2、將所有證書存到下列儲存--點選瀏覽--點選受信任的根證書頒發機構--點選確定

4、完成,提示匯入成功

5、不確定的話,可以自己檢視一下,剛剛的證書是否匯入進去了

匯入根證書後,申請的證書就自動受信任了,如下圖

二、應用和功能

後續匯入步驟同上

檢視證書當前狀態:和直接檢視index.txt檔案狀態是一樣的

openssl ca -status 0F

吊銷證書: