1. 程式人生 > >Linux搭建CA服務

Linux搭建CA服務

可靠性 配置 目錄 ria 郵箱 poi 引導 str nalu

什麽是CA認證?

CA認證,即CA認證機構,為電子簽名相關各方提供真實性、可靠性驗證的行為。

什麽是CA證書?

證書實際是由證書簽證機關(CA)簽發的對用戶的公鑰的認證。

CA證書類型?

  • 證書頒發機構自簽名證書
  • 服務器證書
  • 用戶證書

Linux系統如何搭建CA服務?

1.安裝相關工具:openssl
yum install openssl -y
2.openssl相關配置文件:/etc/pki/tls/openssl.cnf
指定默認使用的CA

[ ca ]
default_ca      = CA_default            # The default ca section
CA的相關配置
[ CA_default ]
dir             = /etc/pki/CA               ?    ?    ?    ?# Where everything is kept,CA的工作目錄
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,證書的索引數據庫

new_certs_dir   = $dir/newcerts             ?   # default place for new certs,新證書存放目錄
certificate     = $dir/cacert.pem           ?    ? # The CA certificate,CA證書
serial          = $dir/serial               ?    ?    ?    ?# The current serial number,當前證書編號
crlnumber       = $dir/crlnumber            ?  # the current crl number,當前吊銷證書編號

crl             = $dir/crl.pem              ?    ?    ?   # The current CRL,當前的吊銷證書
private_key     = $dir/private/cakey.pem # The private key,CA私鑰
RANDFILE        = $dir/private/.rand        ? # private random number file,隨機文件

default_days    = 365                       ?    ?    ?# how long to certify for,證書有效期
default_crl_days= 30                        ?    ?    ?# how long before next CRL,發布證書 吊銷列表的周期
default_md      = sha256                    ?    ?  # use SHA-256 by default,算法
preserve        = no                                    # keep passed DN ordering

policy          = policy_match    ?    ?    ?    ?    ?    ?#選擇使用的策略類型
\# For the CA policy
[ policy_match ]    ?    ?    ?    ?    ?    ?    ?    ?    ?    ?#第一種策略
countryName             = match    ?    ?    ?    ?     ?#是否匹配國家
stateOrProvinceName     = match    ?    ?    ?    #是否匹配省

organizationName        = match    ?    ?    ?    ?  #是否匹配組織名稱
organizationalUnitName  = optional    ?    ?   #是否單元名稱
commonName              = supplied    ?    ?    ?  #通用名
emailAddress            = optional    ?    ?    ?    ?   #郵箱

# For the ‘anything‘ policy
# At this point in time, you must list all acceptable ‘object‘
# types.
[ policy_anything ]
countryName             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

3.創建CA

(1)創建索引數據庫文件和指定證書編號 ? ? ?

touch /etc/pki/CA/index.txt
echo 01 >/etc/pki/CA/serial

(2)CA自簽名證書

生成私鑰:

(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

生成自簽名證書:

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

技術分享圖片
(3)客戶端創建申請文件
生成客戶端私鑰:

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

生成申請文件:

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

技術分享圖片
將生成的申請文件發送到CA頒發服務器

scp app.csr 192.168.128.130:/etc/pki/CA/

(4)CA服務器為客戶端頒發證書

openssl ca -in app.csr -out certs/app.crt -days 100

技術分享圖片
(5)將生成的證書發送給申請的客戶端

 scp certs/app.crt 192.168.128.129:

證書吊銷
生成吊銷證書序號文件

echo 01 >crlnumber

吊銷證書

openssl ca -revoke /etc/pki/CA/newcerts/01.pem

生成吊銷列表

openssl ca -gencrl -out /etc/pki/CA/crl.pem

註意事項:
1.必須要提前創建證書數據庫引導文件/etc/pki/CA/index.txt
2.指定證書編號,證書頒發完成後會自動更新證書序號

Linux搭建CA服務