建立私有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
吊銷證書: