搭建私有CA及证书的申请与授权

基本概念

当我们访问一个网站时,如何确保所访问的站点是真实有效的而不是别人任意伪装的?即如何信任对方正式我们所需要访问的站点。CA就是一个对站点进行认证的签证机构。当我们对某个网站发起请求时,该站点服务器就会将其CA证书发送给我们的客户机,客户机则会核实该证书是否是由客户机信任的CA机构所签发,签名是否真实有效,证书是否过期等。
CA的签署其本质是将客户的提供的公钥进行授权,保存在自己存储中。

证书申请、签署基本流程

1、生成申请证书
2、RA(注册机构)核验
3、CA(签证机构)签署
4、获取证书

除此之外,还要CA进行自签证,即声明一个私有CA。具体流程如下:
1、CA自签证

# cd /etc/pki/CA
# touch index.txt	#
# echo 01 > serial	#签证序号,每签一个证书其序列号会增1
# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)	#生成密钥文件
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm -days 7300 -out /etc/pki/CA/cacert.pem    #申请并自签证
	选项说明:
	-new:生成证书申请请求
	-x509:签署证书,仅用于自签证
	-key:知名证书申请的密钥文件
	-days:证书有效期
	-out:生成证书保存路径
	随后的对话框依次填入信息:
		国家(2字符)
		省名
		市名
		公司名
		部门名
		服务器名称
		邮箱地址
		申请文件加密密码(两次),可不输入

2、客户发起证书申请

# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)	#客户端生成key
# openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr    #生成请求证书
注:这是私有CA,因此客户申请的公司名称要与CA公司名称保持一致
将证书申请发送给CA

3、RA审核通过,CA签证

# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
	-in:指定证书申请文件
	-out:生成已签证证书(.crt)
	-days:签署证书有效期

4、客户获取已签证的证书

注:查看证书信息命令:

# openssl x509 -in /CRT_FILE -noout -text|-subject|serial

证书吊销

1、客户端将自己证书的serial和subject信息提交给CA

# openssl x509 -in /CRT_FILE -noout -subject	#查看自己证书的serial和subject信息

2、CA审核该信息并与index.txt中内容对比,对比无误后吊销证书

# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem	#每签署一个证书时会在newcerts目录下得到一个以 序列号.pem 命名的文件

3、后续工作
    生成吊销证书编号:如# echo 01 >/etc/pki/CA/crlnumber
    更新吊销列表:# openssl ca -gencrl -out thisca.crl

你可能感兴趣的:(Linux笔记)