2、OpenSSH(二):公有CA、创建私有CA
openssl三个组件:
- openssl:多用途的命令行工具
- libcrypto:加密解密库
- libssl:ssl协议的实现
一、公有证书CA:收费
PKI:Public Key Infrastructure公钥基础设施,由四部分组成:
- CA:证书颁发、发布机构,通常是收费的。
- RA:证书注册机构
- CRL:证书吊销机构
- 证书的存取库
开放网络上的电子商务要求为信息安全提供有效的、可靠的保护机制。这些机制必须提供机密性、身份验证特性(使交易的每一方都可以确认其它各方的身份)、不可否认性(交易的各方不可否认它们的参与)。这就需要依靠一个可靠的第三方机构验证,而认证中心(CA:Certification Authority)专门提供这种服务。
证书机制是目前被广泛采用的一种安全机制,使用证书机制的前提是建立CA(Certification Authority --认证中心)以及配套的RA(Registration Authority --注册审批机构)系统。
CA中心,又称为数字证书认证中心,作为电子商务交易中受信任的第三方,专门解决公钥体系中公钥的合法性问题。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户名称与证书中列出的公开密钥相对应。CA中心的数字签名使得攻击者不能伪造和篡改数字证书。
在数字证书认证的过程中,证书认证中心(CA)作为权威的、公正的、可信赖的第三方,其作用是至关重要的。认证中心就是一个负责发放和管理数字证书的权威机构。同样CA允许管理员撤销发放的数字证书,在证书废止列表(CRL)中添加新项并周期性地发布这一数字签名的CRL。
RA(Registration Authority),数字证书注册审批机构。RA系统是CA的证书发放、管理的延伸。它负责证书申请者的信息录入、审核以及证书发放等工作;同时,对发放的证书完成相应的管理功能。发放的数字证书可以存放于IC卡、硬盘或软盘等介质中。RA系统是整个CA中心得以正常运营不可缺少的一部分。
RA作为CA认证体系中的一部分,能够直接从CA提供者那里继承CA认证的合法性。能够使客户以自己的名义发放证书,便于客户开展工作。
数字证书注册中心,又叫RA,是数字证书认证中心的证书发放、管理的延伸。主要负责证书申请者的信息录入、审核以及证书发放等工作,同时,对发放的证书完成相应的管理功能。发放的数字证书可以存放于IC卡、硬盘或软盘等介质中。RA系统是整个CA中心得以正常运营不可缺少的一部分。
二、公有证书的申请及签署步骤
1、生成申请请求:如果是服务器,包括服务器主机信息等等;如果是个人证书,包括个人信息等。
2、注册机构RA核验
3、颁发机构CA签署
4、使用本服务器的用户,获取证书
三、私有证书CA:免费
建立私有CA,只在公司或组强内部使用,免费。
建立私有CA的工具:
- openssl 简单的私有CA
- openCA
使用openssl创建私有CA的配置文件:
创建openssl私有证书的默认配置文件,/etc/pki/tls/openssl.crf
配置文件中的常用选项:
- HOME:家目录
- 保存随机数的临时文件
- [CA_default]
- dir:证书相关的目录
- certs:已颁发的证书存放的目录
- crl_dir:已吊销的证书的存放目录
- database = .....index.txt:所有证书的索引文件
- # unique_subject = no:证书是否唯一
- new_certs_dir:刚刚颁发的新证书的存放目录
- certificate:CA自己的证书,存放的是公钥
- private_key:CA自己的证书,存放的是私钥
- crl:当前被吊销的证书
- serial:下一个将要颁发的证书的序列号
- crlnumber:下一个将要吊销的证书的序列号
- x509-extensions = user_cert:支持扩展的用户信息
- default_days =365:证书的有效期限
- default_crl_days = 30:吊销的证书的有效期限
使用openssl创建私有CA服务器的步骤:
1.在CA所在服务器,创建所需要的文件:
- 一个空的index.txt,所有证书的索引文件:touch index.txt
- 设置下一个将要颁发的证书的序列号:如01, echo 01 > serial
2.在CA所在服务器,CA自签证书
- 生成私钥证书:
umask 077; openssl genrsa -out private/cakey.pem 2048
- 从私钥中,生成公钥证书( 即,CA自签证书):
openssl req -new -x509 -key /etc/pki/ca/private/cakey.epm -days 7300 -out /etc/pki/ca/cacert.pem
- 选项说明:
- -new :生成新证书签署请求
- -x509:专用CA生成自签证书
- -key:生成请求时用到的私钥文件
- -days n:证书的有效天数
- -out path:证书的保存路径
以上两步是创建CA证书服务器
请求发证、颁发证书的步骤:
某http服务器请求CA服务器颁发证书示例:
1.请求者生成自己的私有证书:
umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048
2. 请求者从以上生成的私有证书中,提取公有证书,作为证书签署请求:
注意,与CA提取公有证书的区别:1.没有-x509选项,-x509只有自签的时侯才使用;
提取的公有证书,一定是csr结尾,表示证书签署请求
注意,请求者的国家、省市、公司名称,要与私有CA保持一致。保持同一个组强,因为这是私有CA。剩下信息不一样。
3.请求者将证书签署请求的证书,发送到CA服务器:
4.CA服务器颁发证书:
openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 365
正常情况下,如公有CA颁发的证书,一般颁发时存放在certs目录下
5.返回证书给请求者
查看证书的信息: openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|-subject|-serial
吊销证书的步骤:
1.在客户端,获取要吊销的证书的serial:
openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
2.在CA服务器,先根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致
3.在CA服务器,吊销证书:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
4.在CA服务器,生成吊销证书的编号 ( 作为CA首次吊销证书时,才需要此步骤):
echo 01 > /etc/pki/CA/crlnumber
5.更新证书吊销列表
openssl ca -gencrl -out thisca.crl
6.查看crl文件:
openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text
posted on 2019-02-25 21:13 myworldworld 阅读(479) 评论(0) 收藏 举报