创建CA 和申请证书

相关知识

CA 是什么
openssl 的配置文件 /etc/pki/tls/openssl.conf 内容详解

1、此文件主要说明了创建CA 时的一些必要的目录文件
2、在此文件中
- match : 表示必须匹配
- optional : 表示可以不匹配

———————————————————————————————–

[ CA_default ]默认CA 的相关配置
dir= /etc/pki/CA此处设定一个变量dir,所有和CA有关的目录文件都在此目录之下
certs= $dir/certs存放CA颁发给申请者的若干证书文件列表
crl_dir= $dir/crl证书吊销列表
new_certs_dir= $dir/newcerts默认新证书的存放位置
certificate= $dir/cacert.pem自签名证书,即CA 自己给自己颁发的证书,通过CA 的私钥文件生成
serial= $dir/serial序列号,此文件里面存放下一个要颁发证书的序列号
crlnumber= $dir/crlnumber吊销证书的序列号
crl= $dir/crl.pem吊销证书的序列号的存放文件
private_key= $dir/private/cakey.pemCA 私钥文件
default_days= #证书有效期
default_crl_days= #证书吊销列表的发布时间间隔
default_md= sha256所用的hash算法
policy= policy_match策略匹配,如果是match,则subject的信息必须是match的;也可改成policy_optional
countryName= match来自哪个国家
stateOrProvinceName= match哪个州(省)
organizationName= match哪个组织(公司)
organizationalUnitName= optional哪个部门
commonName= supplied给哪个主机或者域名颁发证书

———————————————————————————————–

创建CA 和申请证书的步骤

前提环境

主机A :相当于CA 认证中心
主机B :向主机B 中的CA 申请证书,目的是将来做一个web服务器端: https://lovehuxin.me

主机A 上 : 创建CA

1、生成 CA 的私钥文件。CA 作为证书颁发机构,它自己也需要私钥,然后自己给自 己颁发证书

(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
  • umask 066 : 表示umask 的值只对当前设置有效
  • -out /etc/pki/CA/private/cakey.pem :注意,文件名是系统规定了的,表示将CA 的私钥存放在此文件中

    2、创建证书数据索引库文件,里面存放的是CA 颁发的最后一个证书的信息,同时,CA 每颁发一个新证书的时候,都会创建一个index.old 文件,备份之前的证书信息

    touch /etc/pki/CA/index.txt

3、指定CA颁发的第一个证书的序列号,必须是两位数,即01 或者10 等都可以

echo 01 > /etc/pki/CA/serial  #此时serial文件里面的序列号为01

4、 CA自签证书,即自己给自己颁发证书,通过第 1 步中的私钥文件进行生成

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
  • -new : 表示生成新证书的签署请求
  • -x509 : 专用于 CA 生成自签证书
  • -days : 表示CA 自己的证书的有效期限,以天为单位
  • -out /etc/pkiCA/cacert.pem : 证书的保存路径

5、在第 4 步中,终端将会提示输入一些信息

Country Name (2 letter code) [XX]:CN    必须和以下申请证书的客户端一样
State or Province Name (full name) []:henan             必须
Locality Name (eg, city) [Default City]:zhengzhou       可选
Organization Name (eg, company) [Default Company Ltd]:magedu.com    
Organizational Unit Name (eg, section) []:m25           可选
Common Name (eg, your name or your server's hostname) []:ca.liting.com  可选
Email Address []:       可选

6、查看CA的自签名证书的相关信息,CA 的自签名证书的颁发者和被颁发者都是自己

openssl x509 -in /etc/pki/CA/cacert.pem -noout -text

7、新建一个目录,用来存放将来来自申请证书的客户端的密钥文件

mkdir /etc/pki/CA/csr

主机B 上 : 申请证书

8、生成将来用作web 服务器的客户端的私钥路径,存放位置不限。之后利用私钥来向CA生成证书申请文件

(umask 066;openssl genrsa -out /app/service.key 4096)

9、将私钥生成证书申请文件

openssl req -new -key /app/service.key -out /app/service.csr
  • 会出现终端提示信息,其中国家、省份(州)和组织机构名 必须和之前CA申请证书时的填写一样,否则会报错,因为在 /etc/pki/tls/openssl.conf 里面定义了使用的策略匹配为 policy = policy_match
  • 将来此主机向CA 申请其他方面的证书时,同样也可以使用此私钥进行申请,需要将 -out 所生成的文件名进行更改一下

10、将自己证书申请文件传输给CA 认证中心,向CA 申请证书

scp /app/service.csr IP:/etc/pki/CA/csr 

主机A 上 : 颁发证书

11、CA 签署证书,并将证书颁发给申请者

openssl ca -in /etc/pki/CA/csr/service.csr  -out /etc/pki/CA/certs/service.crt -days 100 
  • -in : 给哪个申请者进行颁发证书
  • -out : 颁发的证书
  • -days : 证书有效期。注意,可能申请颁发证书的机构也会写上申请证书的有效天数,但是最后决定权在于CA

12、查看颁发的证书

  openssl x509 -in /etc/pki/CA/certs/service.crt -noout -text

至此,创建CA 和申请证书完成

最后在 /etc/pki/CA 下生成的目录文件
.
|– cacert.pem
|– certs
| -- service.crt
|-- crl
|-- csr
|
– service.csr
|– index.txt
|– index.txt.attr
|– index.txt.old
|– newcerts
| -- 01.pem
|-- private
|
– cakey.pem
|– serial
`– serial.old
5 directories, 10 files

.

>  cat index.txt     
>  V    171130125136Z       01  unknown
    /C=CN/ST=henan/O=magedu.com/OU=yihongyuan/CN=lovehuxin.me

index.txt 文件里面存放的是最后一个颁发的证书的信息,其中V 表示颁发了的 ; R 表示吊销了的

> cat  index.txt.attr 
> unique_subject = yes | no

index.txt.attr 文件里面存放的是表示申请者填写信息中的subject是否必须唯一,yes是唯一

[root@test6 /etc/pki/CA]# cat serial
02
[root@test6 /etc/pki/CA]# cat serial.old 
01
  • serial : 表示下一个要颁发的证书的序列号
  • serial.old : 表示上一个最后颁发的证书的序列号

    cd newcerts/ ; cat 01.pem 
    
  • newcerts : 表示新颁发的证书的默认存放路径

  • 01.pem : 表示颁发给主机B 的证书

查看证书的信息

openssl x509 -in CERT_FILE -noout -text | -dates | - serial | -subject | -issuer

-text | -dates | - serial | -subject | -issuer 分别表示查看颁发的证书的什么信息。其中,text 显示信息最全

查看指定编号的证书状态 :openssl ca -status SERIAL

openssl ca -status  01

SERIAL 表示颁发的证书的序列号

吊销证书

openssl ca -revoke /etc/pki/CA/newcerts/01.pem

吊销 01.pem 的证书

cat index.txt

可以发现其状态已经变成 R ,表示被吊销了的

echo 01 > /etc/pki/CA/crlnumber

吊销的证书在CA 认证中心也会生成一个编号列表,这里是指定第一个吊销的证书的吊销编号

openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem

更新证书吊销列表 。-out /etc/pki/CA/crl/crl.pem 表示证书吊销列表存放的路径

openssl crl -in crl.pem -noout -text

查看被吊销的证书的信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值