私有CA和證書
阿新 • • 發佈:2018-02-14
傳輸 same ica ca簽署 .cn 數字證書 struct stat 派出所
證書類型
證書授權機構的證書
服務器
用戶證書
獲取證書兩種方法
使用證書授權機構:
生成簽名請求(csr )
將csr發送給CA
從CA處接收簽名
自簽名的證書:
自已簽發自己的公鑰
openSSL工具可以滿足我們創建CA和證書
1)PKI: Public Key Infrastructure 簽證機構:CA (Certificate Authority),真正的頒發證件機構,相當於公安局 註冊機構:RA,相當於派出所 證書吊銷列表:CRL,相當於證件丟失時掛失的內容 證書存取庫:當別人請求認證是的資料庫。 2)數字證書的格式(X.509) :定義了證書的結構以及認證協議標準 版本號 序列號:CA用於唯一標識的此證書 簽名算法: 頒發者:CA自己的名稱 有效期限 主體名稱:證書擁有者自己的名字 主體公鑰:證書擁有者自己的公鑰 CRL 分發點 擴展信息 發行者簽名:CA對此證書的數字簽名 3)證書申請及簽署步驟: 1 、生成申請請求 2 、RA 核驗 3 、CA 簽署 4 、獲取證書
創建私有CA和頒發證書:
openssl 的配置文件: /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to ‘no‘ to allow creation of # several ctificates with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number # must be commented out to leave a V1 CRL crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem # The private key 三種策略:匹配、支持和可選 匹配指要求申請填寫的信息跟CA設置信息必須一致, 支持指必須填寫這項申請信息, 可選指可有可無 1)創建所需要的文件 生成證書索引數據庫文件: touch /etc/pki/CA/index.txt 系統會自動生成個index.txt.attr文件,用來決定是否使證書為唯一性,也就是是否可以重復申請證書 指定第一個頒發證書的序列號: echo 01 > /etc/pki/CA/serial 2)CA自簽證書 生成私鑰: cd /etc/pki/CA/ openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048 chmod 600 cakey.pem 生成自簽名證書: openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem 3)頒發證書 1》在需要使用證書的主機生成證書請求 在請求者Kernal的web服務器生成私鑰: (umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048) 在請求者Kernal上生成證書申請文件: openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out /etc/pki/tls/test.csr 2》將證書請求者Kernal的文件傳輸給CA 3》CA簽署證書,並將證書頒發給請求者Kernal: openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 365 註意: 默認國家,省,公司名稱三項必須和CA一致,但可以修改/etc/pki/tls/openssl.cnf common name要使用此主機在通信真實使用的名字 4》查看證書中的信息: openssl x509 -in /PATH/FROM/CERT_FILE -noout - text|issuer|subject|serial|dates openssl ca -status SERIAL:查看指定編號的證書狀態 4)吊銷證書 1》在客戶端獲取要吊銷的證書的serial(序列號) openssl x509 -in /PATH/FROM/cert_FILE -noout -serial -subject 2》在CA 上,根據客戶提交的serial 與subject信息,對比檢驗是否與index.txt 文件中的信息一致,吊銷證書: openssl ca -revoke /etc/pki/CA/newcerts/0SERIAL .pem 3》指定第一個吊銷證書的編號 註意:第一次更新證書吊銷列表前,才需要執行 echo 01 > /etc/pki/CA/crlnumber 4》更新證書吊銷列表 openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem 查看crl 文件: openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text 5)請求者Kernal作為下級CA 1》Kernal生成自己的私鑰: openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048 chmod 600 cakey.pem 2》Kernal向根CA申請證書: openssl req -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/tls/testsubca.csr 將親求文件發給根CA 3》根CA頒發子CA證書給請求者Kernal,並發給Kernal: openssl ca -in testsubca.csr -out /etc/pki/CA/certs/testsubca.crt 將testsubca.crt發送給Kernal 在kernal上講testsubca.crt 改名為cacert.pem並放置在 /etc/pki/CA 4》Kernal給請求者Berl頒發證書 在請求者Berl的web服務器生成私鑰 在請求者Berl上生成證書申請文件 將證書請求者Kernal的文件傳輸給Kernal(CA) Kernal(CA)簽署證書,並將證書頒發給請求者Berl
私有CA和證書