2020年用openssl自做CA自签发SSL证书

在openssl-1.0.2o环境下,通过vscode在Ubuntu中创建自签发SSL证书。过程包括生成服务端私钥、CSR文件,解决签名请求错误,创建CA并签署服务器和客户端CSR文件,最后解决证书错误,完成证书签发。

本人运行环境:openssl-1.0.2o, vscode,ubuntu

1.首先要生成服务端的私钥(key文件)

openssl genrsa -des3 -out server.key 1024

2.生成CSR签名请求证书,生成的csr文件交给CA签名后形成服务端自己的证书。

openssl req -new -key server.key out server.csr -config openssl.cnf

这个地方会出现错误:

02001002:system library:fopen:No such file or directory:.\crypto\bio\
bss_file.c:168:fopen('openssl.cnf','rb')

解决办法:

找不到openssl.cnf,我们加入绝对路径找到openssl.cnf就可以运行。

3.同样的办法对客户端使用

openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf

4.CSR文件需要CA的签名才能形成证书。
生成CA:

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

这里同样openssl.cnf用自己的绝对路径。

5.接下来我们要用生成的CA证书为刚才生成的server.csr,client.csr文件签名。
服务器端:

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

客户端:

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

这里会出现错误:

I am unable to access the ./demoCA/newcerts directory
./demoCA/newcerts: No such file or directory

解决办法:
由于我将客户端和服务端分成两个文件写的,所以为将CA的key和crt都分别铐到了client和server文件里面,然后去openssl的文件夹里找到demoCA这个文件,里面有一个index.txt和serial是我们需要的。

在客户端和服务端将文件demoCA粘贴过来就ok了,然后在demoCA里面创建一个新的文件夹newcerts。将serial放在里面,index.txt放在demoCA下面。
newcerts文件夹是在demoCA下的。
然后再运行代码,openssl.cnf添上绝对路径就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值