一、证书服务

证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

1、证书配文件存放

#查看openssl配置文件
cat /etc/pki/tls/openssl.cnf
####################################################################
[ ca ]
default_ca      = CA_default            # 默认的 ca 部分

####################################################################
[ CA_default ]

dir             = /etc/pki/CA           # 保存所有东西的地方
certs           = $dir/certs            # 发布的证书存放在哪里
crl_dir         = $dir/crl              # 发布的 crl 存放在哪里
database        = $dir/index.txt        # 数据库索引文件
#unique_subject = no                    # 设置为“no”以允许创建
                                        # 多个具有相同主题的证书。
new_certs_dir   = $dir/newcerts         # 新证书的默认位置。

certificate     = $dir/cacert.pem       # CA 证书
serial          = $dir/serial           # 当前序列号
crlnumber       = $dir/crlnumber        # 当前的 crl 编号
                                        # 必须被注释掉才能留下 V1 CRL
crl             = $dir/crl.pem          # 当前的 CRL
private_key     = $dir/private/cakey.pem# 私钥
RANDFILE        = $dir/private/.rand    # 私有随机数文件

x509_extensions = usr_cert              # 要添加到证书的扩展
####################################################################
101 #证书信息参数设置     
102 [ policy_match ]
103 countryName             = match     #匹配
104 stateOrProvinceName     = match   	#匹配
105 organizationName        = match		#匹配
106 organizationalUnitName  = optional 	#可选
107 commonName              = supplied 	#提供
108 emailAddress            = optional  #可选

2、根证书

#手动创建证书服务相关目录
mkdir -p /etc/pki/CA/{certs,crl,newcerts,private}
#创建生成私钥
cd private/
[root@dns private]# umask 077; openssl genrsa -out cakey.pem 4096
#生成根证书证书
[root@dns CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
#证书信息
---------------------------------------------------------------
Country Name (2 letter code) [XX]:CN #国家代码
State or Province Name (full name) []:HN #所在省份
Locality Name (eg, city) [Default City]:LY #所在城市
Organization Name (eg, company) [Default Company Ltd]:system #组织单位
Organizational Unit Name (eg, section) []:skills #组织单元
Common Name (eg, your name or your servers hostname) []:dns.skills.com #证书通用名
Email Address []#邮箱名称可以忽略
-------------------------------------------------------------------
#查看根书详细内容
[root@dns CA]# openssl x509 -in cacert.pem -noout -text

3、证书申请

#创建证书配置文件夹
[root@idm ~]#mkdir -p /etc/pki/CA/{certs,crl,newcerts,private}
#创建生成私钥
cd private/
[root@idm private]#umask 077; openssl genrsa -out idm.key 1024
#生成ca证书请求文件
#注意,国家,所在省,OU名称 必须跟证书颁发机构一致
[root@idm private]#openssl req -new -key idm.key -out idm.csr
[root@idm private]# ll
total 8
-rw-------. 1 root root 704 Sep  3 19:16 idm.csr
-rw-------. 1 root root 887 Sep  3 19:07 idm.key
#利用scp将cs请求文件发送到证书颁发服务器 server
[root@idm private]#scp idm.csr root@10.10.70.101:/etc/pki/CA

4、证书申请回应

#创建数据库索引文件
[root@dns CA]touch /etc/pki/CA/index.txt
#创建指定证书颁发序列号
[root@dns CA]echo 01 > /etc/pki/CA/serial
#签发证书
#注意按两次"Y"
[root@dns CA]#openssl ca -in idm.csr -out idm.crt -days 1095
#利用scp将颁发的证书文件发送到证书客户端 server
[root@dns CA]#scp idm.crt root@10.10.70.102:/etc/pki/