证书类型
证书授权机构的证书
服务器
用户证书
获取证书两种方法
使用证书授权机构:
生成签名请求(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