Linux实验-创建CA和申请证书

Linux实验-创建CA和申请证书

  • 创建CA和申请证书
    • 一、OpenSSL
    • 二、创建CA和申请证书
    • 三、实验

创建CA和申请证书

一、OpenSSL

1.PKI:Public Key Infrastructure
	CA
	RA
	CRL
	证书存取库
2.建立私有CA:
	OpenCA
	openssl
3.证书申请及签署步骤:
	1、生成申请请求
	2RA核验
	3CA签署
	4、获取证书

二、创建CA和申请证书

创建私有CA:
	openssl的配置文件:/etc/pki/tls/openssl.cnf
	三种策略:match匹配、optional可选、supplied提供
	match:要求申请填写的信息跟CA设置信息必须一致
	optional:可有可无,跟CA设置信息可不一致
	supplied:必须填写这项申请信息,
	
1、创建所需要的文件
	touch /etc/pki/CA/index.txt 生成证书索引数据库文件
	echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

2CA自签证书
		生成私钥
		cd /etc/pki/CA/
		(umask 066; openssl genrsa -out private/cakey.pem 2048)
	生成自签名证书
		openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem
		-days 3650 -out /etc/pki/CA/cacert.pem
	选项说明:
		-new:生成新证书签署请求
		-x509:专用于CA生成自签证书
		-key:生成请求时用到的私钥文件
		-days n:证书的有效期限
		-out /PATH/TO/SOMECERTFILE: 证书的保存路径

3、颁发证书
	a.在需要使用证书的主机生成证书请求
		给web服务器生成私钥
		(umask 066; openssl genrsa –out /data/test.key 2048)
		生成证书申请文件
		openssl req -new -key /data/test.key -out /data/test.csr
	b.将证书请求文件传输给CA
	c.CA签署证书,并将证书颁发给请求者
		openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 100
		注意:默认要求 国家,省,公司名称三项必须和CA一致
	d.查看证书中的信息:
		openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates
		openssl ca -status SERIAL 查看指定编号的证书状态

4、吊销证书
	a.在客户端获取要吊销的证书的serial
		openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
	b.CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,
	吊销证书:
		openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
	c.指定第一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行
		echo 01 > /etc/pki/CA/crlnumber
	d.更新证书吊销列表
		openssl ca -gencrl -out /etc/pki/CA/crl.pem
	e.查看crl文件:
		openssl crl -in /etc/pki/CA/crl.pem -noout -text

三、实验

1.查看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
RANDFILE        = $dir/private/.rand    # private random number file

x509_extensions = usr_cert              # The extentions to add to the cert

************************************************************************
policy          = policy_match
# For the CA policy
[ policy_match ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

三种策略:match匹配、optional可选、supplied提供
	match:要求申请填写的信息跟CA设置信息必须一致
	optional:可有可无,跟CA设置信息可不一致
	supplied:必须填写这项申请信息,

2.创建所需要的文件
	touch /etc/pki/CA/index.txt 生成证书索引数据库文件
	echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

3.CA自签证书
	生成私钥
		cd /etc/pki/CA/
		(umask 066; openssl genrsa -out private/cakey.pem 2048)
	生成自签名证书
		openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem
		-days 3650 -out /etc/pki/CA/cacert.pem
	选项说明:
		-new:生成新证书签署请求
		-x509:专用于CA生成自签证书
		-key:生成请求时用到的私钥文件
		-days n:证书的有效期限
		-out /PATH/TO/SOMECERTFILE: 证书的保存路径

countryName = match
stateOrProvinceName = match
organizationName = match
这三个选项和后面颁发的证书需要一致,原因可以看上面的配置文档的摘要信息
Linux实验-创建CA和申请证书_第1张图片

3、颁发证书
	a.在需要使用证书的主机生成证书请求
		给web服务器生成私钥
		(umask 066; openssl genrsa –out /data/test.key 2048)
		生成证书申请文件
		openssl req -new -key /data/test.key -out /data/test.csr
	b.将证书请求文件传输给CA
	c.CA签署证书,并将证书颁发给请求者
		openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 100
		注意:默认要求 国家,省,公司名称三项必须和CA一致
	d.查看证书中的信息:
		openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates
		openssl ca -status SERIAL 查看指定编号的证书状态

Linux实验-创建CA和申请证书_第2张图片


4、吊销证书
	a.在客户端获取要吊销的证书的serial
		openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
	b.CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,
	吊销证书:
		openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
	c.指定第一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行
		echo 01 > /etc/pki/CA/crlnumber
	d.更新证书吊销列表
		openssl ca -gencrl -out /etc/pki/CA/crl.pem
	e.查看crl文件:
		openssl crl -in /etc/pki/CA/crl.pem -noout -text

你可能感兴趣的:(Linux实验-创建CA和申请证书)