CA证书的签发与认证

【实验目的及要求】

实验目的:

学会签发根CA证书,使用根CA证书签发下级证书。

实验要求:

利用OpenSSL提供的命令行工具实现:

  1. 生成根CA密钥对、生成自签名的根CA证书;
  2. 生成普通个人用户的密钥对,并生成证书请求;
  3. 以CA管理员的角色,给上一步生成的证书请求签发个人证书。

【实验环境】

Linux 内核2.6及以上,安装有OpenSSL。

【实验过程】

1)环境准备

1、首先检查系统是否安装openssl,命令行中输入命令

openssl version

如图在命令行中,输出了OpenSSL的版本信息:
在这里插入图片描述(若无版本信息请自行百度安装OpenSSL教程)

2、接着,我们需要准备一个目录放置CA文件,包括颁发的证书和CRL(Certificate Revoke List)。这里我们新建目录 /var/MyCA,然后我们在/var/MyCA下建立两个目录,certs用来保存我们的CA颁发的所有的证书的副本;private用来保存CA证书的私钥匙,同时将private目录权限设置为700(仅自己可读写)。
在这里插入图片描述

3、除了生成钥匙,在我们的CA体系中还需要创建三个文件。第一个文件用来跟踪最后一次颁发的证书的序列号,我们把它命名为serial,初始化为01。第二个文件是一个排序数据库,用来跟踪已经颁发的证书。我们把它命名为index.txt,文件内容为空。
在这里插入图片描述

第三个文件是OpenSSL的配置文件:
键入命令

gedit openssl.cnf

然后在文件中输入下列内容:

[ ca ]
default_ca = myca

[ myca ]
dir = /var/MyCA
certificate = $dir/cacert.pem
database = $dir/index.txt
new_certs_dir = $dir/certs
private_key = $dir/private/cakey.pem
serial = $dir/serial

default_crl_days= 7
default_days = 365
default_md = md5

policy = myca_policy
x509_extensions = certificate_extensions

[ myca_policy ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = supplied
organizationName= supplied
organizationalUnitName = optional

[ certificate_extensions ]
basicConstraints= CA:false

在这里插入图片描述

我们需要告诉OpenSSL配置文件的路径,有两种方法可以达成目的:通过config命令选项;通过环境变量OPENSSL_CONF。这里利用config选项。(后面会用到)

2)生成根证书 (Root Certificate)

我们需要一个证书来为自己颁发的证书签名,这个证书可从其他CA获取,或者是自签名的根证书。这里我们生成一个自签名的根证书。首先我们需要往配置文件里面添加一些信息,如下所示,节名和命令行工具的命令req一样。我们把所有必要的信息都写进配置。

[ req ]
default_bits = 2048
default_keyfile = /var/MyCA/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = root_ca_distinguished_name
x509_extensions = root_ca_extensions
[ root_ca_distinguished_name ]
commonName = My Test CA
stateOrProvinceName = HZ
countryName = CN
emailAddress = test@cert.com 
organizationName = Root Certification Authority
[ root_ca_extensions ]
basicConstraints = CA:true

在这里插入图片描述

3) 生成根的密钥对和根证书

命令:

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

在这里插入图片描述

4)生成普通个人用户的密钥对,并生成证书请求

首先生成普通个人用户的密钥对(key文件):
命令:

openssl genrsa -des3 -out  client.key 1024

在这里插入图片描述

接着生成普通个人用户的证书请求:
命令:

openssl req -new -key client.key -out client.csr

后面按照提示输入各种信息即可.
在这里插入图片描述

5)以CA管理员的角色给普通用户请求签发个人证书

命令:

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

在这里插入图片描述

用OpenSSL命令行,来验证一下我们生成的证书:
命令:

openssl verify -CApath certs -CAfile ca.crt client.crt

在这里插入图片描述

到此实验完成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值