开源CA搭建-基于openssl实现数字证书的生成与分发

目录

一、前言

二、openssl介绍

三、openssl的常用用法

(一)单向加密

(二)生成随机数

(三)生成公钥,私钥

1.生成私钥

2.提取公钥

四、搭建CA

(一)创建根CA私钥:

(二)生成自签名证书

(三)创建数据库以及新颁发证书数字

(四)设置证书的起始编号

(五)创建文件夹储存用户信息

五、颁发证书

(一)生成服务器自己的私钥

(二)为服务器申请证书

(三)CA签署服务器的证书

(四)验证证书是否有效

六、吊销证书


 

一、前言

数字证书与CA的介绍:

证书是建立公共密钥和某个实体之间联系的数字化的文件。它包含的内容有:版本信息(X.509也是有三个版本的)、系列号、证书接受者名称、颁发者名称、证书有效期、公共密钥、一大堆的可选的其他信息、CA的数字签名。证书由CA颁发,由CA决定该证书的有效期,由该CA签名。每个证书都有唯一的系列号。证书的系列号和证书颁发者来决定某证书的唯一身份。
 CA是第三方机构,被你信任,由它保证证书的确发给了应该得到该证书的人。CA自己有一个庞大的public key数据库,用来颁发给不同的实体。CA也是一个实体,它也有自己的公共密钥和私有密钥。

openssl可以生成CA的证书文件,私钥,可实现加解密以及数字签名的功能。

二、openssl介绍

openssl是一款开放源代码软件包,通过命令行形式执行,包含了ssl协议库,应用程序以及密码算法库,集成了安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。

三、openssl的常用用法

(一)单向加密

openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary] [-out filename]

[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] : 指可以用来加密的内容

-out filename指可以把加密内容保存到特定文件中

(二)生成随机数

openssl rand -base64|-hex NUM

可选base64或hex(十六进制)    

NUM:生成随机数的字节长度

(三)生成公钥,私钥

1.生成私钥

需要使用genrsa命令生成私钥,然后从生成的私钥中提取公钥

openssl genrsa [-out filename] [-des | -des3 | -idea] [numbits]

-out filename : 将生成的私钥保存至特定文件中

-des | -des3 | -idea : 可选用的密码学算法

numbits :生成的私钥长度,单位是字节,一般是2048

2.提取公钥

openssl rsa [-in filename] [-out filename] [-pubout]

-in filename : 公钥对应的私钥存储文件

-out filename : 提取出公钥后储存的文件

-pubout :公钥

四、搭建CA

(一)创建根CA私钥:

openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048

(二)生成自签名证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.crt  -days 3650

4d4d278b9af940be9c9e326e191375de.png

(三)创建数据库以及新颁发证书数字

touch /etc/pki/CA/index.txt
touch /etc/pki/CA/serial

(四)设置证书的起始编号

echo 01 > /etc/pki/CA/serial

(五)创建文件夹储存用户信息

cd /etc/pki/CA
mkdir data

五、颁发证书

(一)生成服务器自己的私钥

openssl  genrsa -out /etc/pki/CA/data/server.key 2048

31dfb124f4344ea285cda48bc6c92118.png

(二)为服务器申请证书

openssl req -new -key /etc/pki/CA/data/server.key -out /etc/pki/CA/certs/server.csr

7673fd5b1f2e48938f2e2b8851ea23a8.png

注意:前四项填写必须和CA相同,且server' s hostname必须是申请服务器的ip地址或者域名

(三)CA签署服务器的证书

openssl ca -in /etc/pki/CA/certs/server.csr -cert /etc/pki/CA/cacert.crt -keyfile /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/certs/server.crt -days 36500

efe51d6d53bb4dda91a938898be6ca47.png

(四)验证证书是否有效

openssl verify -verbose -CAfile /etc/pki/CA/cacert.crt /etc/pki/CA/certs/server.crt

c4cb5617fdfb4ce48891181b5792d00b.png

显示ok的话就可以了

 

将得到的server.crt和server.key发给服务器,在其ssl配置文件中导入即可实现http到https的转换。如果需要浏览器通过https安全访问web服务的话,还需要在浏览器中导入CA的自签名证书

六、吊销证书

由于撤销证书的命令在openssl配置文件中指定了CA字签名证书的名称,所以在撤销证书前,需要先改一下CA自签名证书的后缀名:

mv /etc/pki/CA/cacert.crt /etc/pki/CA/cacert.pem

  (一)查看证书serial信息

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

becd99eceb9b497187729ce654854632.png

 比对成功后,进行撤销

(二)吊销证书

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

(三)查看证书状态

openssl ca -status 01

(四)定义证书撤销列表的起始编号

echo 01 > /etc/pki/CA/crlnumber

(五)更新证书撤销列表  

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

(六)查看证书撤销列表

openssl crl -in /etc/pki/CA/crl.pem -noout -text

210d6f8bc00745f6b5a6d61515c4866b.png

参考链接:

【CentOS 7+Apache】5分钟完成服务器搭建+全站HTTP转HTTPS_哔哩哔哩_bilibili

CentOS搭建基于Apache与OpenSSL自签名证书的HTTPS服务并解决客户端浏览器信任问题_aptx4869_li的博客-CSDN博客_centos httpd openssl

Centos7创建CA和申请证书 - mingzhang - 博客园 (cnblogs.com)

 

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WmVicmE=

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值