单机使用Openssl搭建CA并生成证书和CRL(woindows、linux)

参考文档:https://blog.csdn.net/miouqi/article/details/75268402

 

安装

windows去openssl官网下载安装包,然后将openssl的路径添加到环境变量PATH下面。

Linux安装可以参考:https://segmentfault.com/a/1190000016204693

 

准备(ubuntu在root权限)

// 创建ca和user(客户端)两个目录
// 进入ca目录,创建demoCA/private文件夹
// 进入ca/demoCA目录,创建index.txt(证书索引库), serial(记录所有颁发证书的serial number)文件

注意:index.txt在windows下必须为ANSI格式的编码

 

CA准备

为CA生成私钥

// 进入CA目录 openssl genrsa -out ./demoCA/private/cakey.pem 2048

为CA生成自签名证明

  • ubuntu
openssl req -new -x509 -key ./demoCA/private/cakey.pem -days \3650 -out /etc/pki/CA/cacert.pem
  • windows
openssl req -new -x509 -key ./demoCA/private/cakey.pem -days 3650 -out ./demoCA/cacert.pem 

 

颁发证书

// 进入user目录

为用户生成私钥

openssl genrsa -out ./user.key 2048

生成CSR文件

openssl req -new -key ./user.key -days 365 -out ./user.csr

将证书文件传输给CA

// 同一主机下直接拷贝,不同主机,ubuntu可以使用下面命令传输
scp ./user.csr [ip]:/tmp

// windows
copy ./user.csr ../ca/tmp/

CA签署证书,并发给申请者

// 用notepad ++ 打开./demoCA/serial,添加01。如果用echo,编码字符会变。
// 第一次添加的时候需要编辑serial,后续都不需要

// 在demoCA下创建newcerts目录,用户ca存储颁发的证书信息

// 进入ca目录
openssl ca -in  ./tmp/user.csr -out user.crt -days 365
// 将cert转换为pem
openssl x509 -in user.crt -out user.pem -outform PEM
// 查看证书信息
openssl x509 -in ./user.crt -noout -text
openssl x509 -in ./user.pem -noout -text

CA将已签名证书传输给申请者

// windows拷贝,unbutu可以使用cp或者scp

ca删除申请者csr文件

// windows直接删,ubunu可以使用rm命令

吊销证书

在客户端获取要吊销的证书的serial

openssl x509 -in .\certs\user1.crt -serial -subject

在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,一致吊销证书

openssl ca -revoke ./demoCA/newcerts/01.pem

CA指定第一个吊销证书的编号,注意:第一次更新吊销证书列表前,才需要执行

// 进入ca目录,该目录下创建crlnumber文件 echo 01 > ./demoCA/crlnumber

CA更新证书吊销列表

// 创建crl目录 openssl ca -gencrl -out ./crl/crl.pem openssl crl -in ./crl/crl.pem -noout -text # 查看crl文件

 

你可能感兴趣的:(区块链)