CA证书
(结构)PKI:
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库
(内容) X.509:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法
颁发者
有效期
主体名称
主体公钥
CRL分发点
扩展信息
发行者签名
获取证书两种方法:
使用证书授权机构
生成签名请求(csr)
将csr发送给CA
从CA出接收签名
自签名的证书
自己签发自己的公钥
HHTPS过程:
1、客户端发送HELLO包给服务器端
2、服务器发送CA证书给客户端
3、客户端生成对称密钥用服务器的公钥加密,发给服务器端
4、服务器用私钥解密后,得到对称密钥
5、服务器和客户端传输数据时用对称密钥加密
OpenSSL
三个组件:
openssl:多用途的命令行工具,包openssl
libcrypto:加密算法库,包openssl-libs
libssl:加密模块应用库,实现了ssl及tls,包nss
openssl命令
两种运行模式:交互模式和批处理模式
openssl version:程序版本号
标准命令、消息摘要命令、加密命令
标准命令:
enc、ca、req、...
实现对称加密:
加密:openssl enc -des3 -a -salt -in testfile -out testfile.cipher
解密:openssl enc -d -des3 -a -salt -in testfile.cipher -out testfile
生成私钥:
openssl genrsa -out /PATH/TO/REIVATEKEY.FILE NUM_BITS
例子:(umask 077;openssl genrsa -out test.key 2048) ###umask设置私钥文件权限,私钥加密可在2048前加“- des”
openssl rsa in test.key -out test2.key 将加密key解密
从私钥中提取公钥:
openssl rsa -in REIVATEKEY.FILE -pubout -out PUBLICKEYFILE
例子:openssl rsa -in test.key -pubout -out test.key.pub
CA配置文件:/etc/pki/tls/openssl.cnf
[ CA_default ] # 默认CA配置
dir = /etc/pki/CA # 默认CA目录
certs = $dir/certs # 存放证书
crl_dir = $dir/crl # 存放证书吊销列表
database = $dir/index.txt # 证书数据库(编号、索引、颁发给谁)
new_certs_dir = $dir/newcerts # 存放新证书
certificate = $dir/cacert.pem # 根CA证书文件
serial = $dir/serial # 下一个证书编号
crlnumber = $dir/crlnumber # 下一个吊销证书编号
crl = $dir/crl.pem # 证书吊销列表
private_key = $dir/private/cakey.pem# 私钥文件
default_days = 365 # 证书有效期
default_crl_days= 30 # 证书吊销列表发布间隔
policy = policy_match或anything # CA策略,match必须匹配,anything 无需匹配
查看证书状态:
openssl ca -status #
实验1:向CA申请证书
一、
服务器端建立根CA
1、生成私钥
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem -des 2048)
2、自签名证书
openssl req -new x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem days 3650
CN
GZ
GZ
magedu
M30
www.x1amg.com
3、查看自签名证书:
openssl x509 -in /etc/pki/CA/private/cakey.pem -noout -text
4、建立证书数据库和下一个证书编号
touch /etc/pki/CA/index.txt
vim /etc/pki/CA/serial
01
二、
建立客户端申请证书
1、生成私钥 ---存放在与软件的配置文件同一目录
(umask 077;openssl genrsa -out /data/test.key 2048)
2、生成证书申请文件
openssl req -new -key /data/test.key -out /data/test.csr
CN
GZ
GZ
magedu
M30
www.x1amg.com
3、把证书申请文件发送到服务器端
scp /data/test.csr 192.168.10.10:/etc/pki/CA
三、
CA颁发证书
1、生成证书文件
openssl ca -in /etc/pki/CA/test.csr -out /etc/pki/CA/certs/test.pem -days 100
2、把证书文件回传客户端
scp /etc/pki/CA/certs/test.pem 192.168.10.10:/data
四、
1、吊销证书
openssl ca -revoke /etc/pki/CA/newcerts/#.pem
2、创建下一个吊销证书编号
vim /etc/pki/CA/crlnumber
01
3、发布到证书吊销列表
openssl ca -gencrl -out /etc/pki/CA/crl.pem
4、查看证书吊销列表
openssl crl -in /etc/pki/CA/crl.pem -noout -text