`
shinfocom
  • 浏览: 1181531 次
文章分类
社区版块
存档分类
最新评论

Linux下如何颁发证书:学习使用openssl搭建一个CA

 
阅读更多

这两天学习了openssl在LInux中的使用,openssl是一款开源的加密工具,在Linux环境下,我们能够利用它来搭建一个CA来实现证书的发放,可以用于企业内部使用的加密工具。在介绍openssl之前,首先描述一下关于“身份认证+数据加密”的实现方法原理。


如何实现“身份验证+数据加密”,请看下面的一张流程图(自己画得,比较简陋)

整个加密过程:

发送方: 计算数据特征值----> 使用私钥加密特征值 ---> 随机生成密码对称加密整个数据 ---> 使用接受方公钥加密密码
接收方: 使用私钥解密密码 ----> 解密整个数据 ----> 使用公钥验证身份 ----> 比较数据特征值

但是存在一个问题,谁来管理公钥,任何在互联网上传播的数据都不安全,更不用说传递公钥,它如果被篡改,那就无法验证身份,所以不可能由用户自己颁发公钥。

这个时候需要有一个具有公信力的中间机构来做这份工作,那就是CA,由此引发了两个概念:

CA : 证书颁发机构

PKI : 公钥基础设施,公钥基础构架

证书: 里面存放了用户的各种信息,最核心的部分就是公钥

但是还有一个问题,谁来给CA颁发公钥,解决方法是,CA自己给自己颁发公钥。。。


下面是用openssl这个强大的工具,在linux下构建一个CA,来实现证书管理,我们用一个web服务器端作为需要证书的客户端

1.首先我们来给CA生成一个私钥

切换到/etc/pki/CA/目录,使用openssl命令给自己生成一个私钥

2. CA需要一个自签证书,所以我们给它使用openssl命令生成一个自签证书

3.编辑CA配置文件,它位于etc/pki/tls/openssl.cnf,它的作用是指定你的CA所在目录,更改默认属性值

4.创建CA的相关目录和文件,指定序列号起始数字,在上一步已经说明,它们在CA所在目录创建

5. 创建web服务器的私钥 ,因为是实验,所有并不需要安装web服务器,你可以创建一个ssl目录,我们假设它是一个web服务器

6. 客户端(web服务器)请求获得证书,客户端如果想申请获得证书的话,需要创建一个申请证书,传递给CA

7. 在CA端给客户端颁发证书,使用openssl命令



好了,看一下我们的证书把!就是那个.crt结尾的文件




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics