CA的構成:
PKI: Public Key Infrastructure
簽證機構:CA(Certificate Authority)
注冊機構:RA
證書吊銷列表:CRL
證書存取庫:
X.509:
定義了證書的結構以及認證協議標準
版本號
序列號
簽名算法
頒發者
有效期限
主體名稱
主體公鑰
CRL分發點
擴展信息
發行者簽名
證書類型:
證書授權機構的證書
服務器
用戶證書
獲取證書兩種方法:
1.使用證書授權機構
生成簽名請求(csr)
將csr發送給CA
從CA處接收簽名
2.自簽名的證書
自己簽發自己的公鑰
/etc/pki/tls/openssl.cnf
CA配置文件:
dir = /etc/pki/CA
certs = $dir/certs 頒發的證書必須在這個目錄下
crl_dir = $dir/crl 吊銷證書列表
database = $dir/indcdex.txt
new_certs_dir = $dir/newcerts
給誰頒發過證書的目錄
certificate = $dir/cacert.pem
Ca自簽證的證書存放路徑(文件名要一致上級CA頒發)
serial = $dir/serial
下一個證書的編號(16進制數,需創建)
crlnumber = $dir/crlnumber
下一個要吊銷證書的編號 (要手動創建)
crl = $dir/crl.pem
證書吊銷列表
private_key = $dir/private/cakey.pem
CA自己私鑰文件路徑(文件名后綴必須一致)
RADNFILE =$dir/private/.rand
創建私鑰時要用到的生成隨機數文件
default_days = 365 證書有效期
default_crl_days= 30 30天更新一次CRL
default_md = sha256 默認用sha256加密
preserve = no 保持通過DN排序
policy = policy_match 申請證書時的策略
CA策略:policy
policy_match
countryName = match 必寫國家
stateOrProvinceName = match 省
organizationName = match 公司名
organizationalUnitName = optional 公司部門
commonName(通用名網站域名) = supplied 必須提供(*要與的網站名匹配)
emailAddress = optional 可以空不寫
policy_anything
則是申請時國家,市等可以不一至也行
——————————————————————————–
實驗:向CA申請證書
1 建立RootCA
1)生成私鑰
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096 )
2)自簽名證書
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
req :發申請
-new: 建立第一個申請
-x509: 代表自簽名的證書
-key: 后面跟用到的私鑰文件路徑
-days n:證書的有效期限
-out /PATH/TO/SOMECERTFILE: 證書的保存路徑
依次輸入:國家 ;省 ;公司;部門;網站域名;郵箱
可用下面指令看證書詳細信息:
openssl x509 -in /etc/pki/CA/cacert.pem -noout -text
-noout -issuer 只看誰發行的證書
-noout -subject 只看給誰頒發的證書
-noout -dates 查看證書日期
2 用戶或服務器
1)生成私鑰
(umask 077;openssl genrsa -out app.key 1024 )
一般放在和服務相關的文件夾里面
2)生成證書申請文件
openssl req -new -key app.key -out app.csr
依次輸入:國家;市;公司名;部門;(新的)服務域名;郵箱
3)將申請文件app.csr發給CA
scp
3 CA頒發證書
touch index.txt 創建證書索引庫
echo 0F > serial 創建下一個要頒發的證書編號
openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt -days 100
——————————————————————————–
同一個私鑰可以重新申請申請證書;兩個證書給兩個服務用
CA默認不能給同一個申請證書多次頒發證書但修改/etc/pki/CA/index.txt.attr文件就可以實現
unique_subject = yes為不能 no為可以
——————————————————————————–
openssl ca -revoke newcerts /10.pem
根據newcerts目錄下的證書編號來吊銷證書
/etc/pki/CA/index.txt
開頭的V代表 可用 ;R代表吊銷
創建吊銷列表編號文件:echo 1F >/etc/pki/CA/crlnumber
生成吊銷列表:
openssl ca -gencrl -out crl.pem
每吊銷一個證書都要重新生成一次吊銷列表
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99148