openssl的配置文件:/etc/pki/tls/openssl.cnf
三種策略:匹配、支持和可選
匹配指要求申請填寫的信息跟CA設置信息必須一致,支持指必
須填寫這項申請信息,可選指無關緊要
一、建立所須要的文件
touch /etc/pki/CA/index.txt 生成證書索引數據庫文件
echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號 #此處數字必須爲兩位數
二、 CA自簽證書
生成私鑰
cd /etc/pki/CA/ #路徑很重要,默認的按照配置文件裏的來
(umask 066; openssl genrsa -out
/etc/pki/CA/private/cakey.pem 2048)算法
3 建立CA數據庫
openssl req -new -x509 /etc/pki/CA/private/cakey.pem -days 7300 /etc/pki/CA/cacert.pem #路徑很重要,默認的按照配置文件裏的來瀏覽器
查看證書命令 openssl x509 -in cakey.pem -noout -text #若是不在/etc/pki/CA/private目錄則路徑cakey.pem文件要換成局對路徑。安全
客戶端上申請證書步驟:服務器
1 (umask 066; openssl genrsa -out /app/service.key -des 1024) #由於客戶端生成私鑰沒有要求因此通常自由決定放的位置。app
2 openssl req -new -key /app/service.key -out /app/service.csr #客戶端申請證書網站
Country Name (2 letter code) [XX]:CN #默認必填,必須和根證書內容一致
State or Province Name (full name) []:HN #默認必填,必須和根證書內容一致
Locality Name (eg, city) [Default City]:ZHENGZHOU
Organization Name (eg, company) [Default Company Ltd]:chykj.com #默認必填,必須和根證書內容一致
Organizational Unit Name (eg, section) []:amoukj
Common Name (eg, your name or your server's hostname) []:chykj.com #默認必填,必須和根證書內容一致
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:amoukj #可選填
An optional company name []:chykj.com #可選填加密
(1,2,4,6項要求和根證書資料保持一致,其餘選填便可)
3 上傳客戶端生成的請求證書到根證書服務器spa
openssl ca -in /etc/pki/CA/csr/service.csr -out /etc/pki/CA/certs/service.crt -days 365 #輸出的格式通常是crt或cercode
三 證書的狀態查詢及如何吊銷
1 查看證書中的信息
openssl x509 -in /PATH/FROM/CERT_FILE -noout -text |issuer|subject|serial|dates
openssl ca -status SERIAL 查看指定編號的證書狀態
2 在客戶端獲取要吊銷的證書的serial
openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
3 指定第一個吊銷證書的編號
注意:第一次更新證書吊銷列表前,才須要執行
echo 01 > /etc/pki/CA/crlnumber
更新證書吊銷列表
openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem
查看crl文件:
openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text
4 在CA上,根據客戶提交的serial與subject信息,對比校驗是否與index.txt文件中的信息一致,吊銷證書
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
備註:在etc/pki/CA目錄裏有個index.txt.attr文件 unique_subject = yes #即爲證書內容的惟一性,是否容許相同內容的證書同時存在。