私有CA和证书

证书类型

	证书授权机构的证书
	服务器
	用户证书

获取证书两种方法

	使用证书授权机构:
		生成签名请求(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
posted @ 2018-02-14 18:50  shenxm  阅读(818)  评论(0编辑  收藏  举报