CA和证书

A与B双方通信,需要通过签证机构CA颁发证书,才可以互相信任,从而安全的进行数据传输。想要获取证书,除了付费购买认证机构的证书,还可以自签名获取证书。

openssl命令可以搭建CA,实现自签名证书。下面以三台主机为例,模拟根CA、子CA的搭建,以及客户端申请证书的过程。

一、搭建根CA

/etc/pki/tls/openssl.cnf文件是openssl的配置文件,其中规定了CA证书的存放目录、工作目录、证书编号、策略等信息,搭建CA需要以配置文件为参考。

配置文件

配置文件默认策略

1.创建文件:

a.生成证书索引数据库文件

touch /etc/pki/CA/index.txt

b.指定第一个颁发证书的序列号

echo 01> /etc/pki/CA/serial

2.CA自签证书(第一个CA自己为自己签名)

生成私钥:(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

由于私钥文件很重要,需要设置权限,使其他人无法查看,genrsa代表RSA算法,CA的私钥存放目录是配置文件中规定的,2048代表指定私钥位数。

3.生成自签名证书:

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

其中,new表示新证书签署请求;x509表示生成自签名证书;key表示用到的私钥文件;days表示证书有效期;out后面跟证书的保存路径。运行命令行之后,会交互式填写信息,由于配置文件中默认的策略是policy_match,所以CA与客户端申请时填写的国家,省,公司名必须匹配,其他信息像通用名可以不一样,但必须填写。

创建文件

生成私钥1

生成自签名证书

 

二、搭建子CA

1.创建文件:

a.生成证书索引数据库文件

touch /etc/pki/CA/index.txt

b.指定第一个颁发证书的序列号

echo 02> /etc/pki/CA/serial

2.生成私钥:

(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

3.生成证书申请文件:

openssl req -new -key /etc/pki/CA/private/cakey.pem  -out  subca.csr

根据默认策略,所填写的国家,省,公司必须与根CA一致

4.将文件复制到根CA中:

scp  subca.csr  192.168.25.129 :/etc/pki/CA (以 192.168.25.129主机为根CA)

5.颁发证书:

openssl ca -in subca.csr -out /etc/pki/CA/certs/subca.crt  -days  300

6.将文件传给申请者:

scp certs/subca.crt 192.168.25.6 : /etc/pki/CA/cacert.pem (以192.168.25.6主机为子CA)

这样,子CA就搭建成功了。

子ca

子ca2

三、客户端申请证书

1.生成私钥:

(umask 066;openssl genrsa -out /etc/pki/tls/private/app.key  2048)

2.生成证书申请文件:

openssl req -new -key /etc/pki/tls/private/app.key  -out  /etc/pki/tls/app.csr

交互式填写国家,州,公司要与子CA信息一致。

3. 将文件复制到子CA中:

scp  app.csr  192.168.25.6 : /etc/pki/CA

4.颁发证书:

openssl ca -in app.csr -out /etc/pki/CA/certs/app.crt  -days  100

5.将证书文件传送给申请者:

scp certs/app.crt 192.168.25.6 : /etc/pki/tls/certs (以192.168.25.6主机为客户端)

生成私钥客户端

生成证书申请文件客户端

证书申请文件传送给ca 客户端

颁发证书客户端

将文件传给申请者

最后,还可以查看证书信息:

openssl x509 -in app.crt -noout -text|issuer|subject|dates

其中,text代表全部信息,issuer代表颁发者,subject代表主题,dates代表有效期

在同一客户端可以为其他程序申请证书,无需再生成私钥,只要重新申请证书即可。默认一个证书申请文件不能颁发两个证书,这与index.txt.attr文件有关,只需将文件中unique_subject的值由yes改为no即可。

查看证书信息

index.attr

index.attr2

当证书过期或者不受信任时,可以吊销证书:

openssl ca -revoke /etc/pki/CA/newcerts/02.pem (以02编号证书为例)

指定第一个吊销证书的编号:

echo 01 > /etc/pki/CA/crlnumber

更新证书吊销列表:

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

吊销证书

吊销证书2

文件 /etc/pki/CA/crlnumber中存放的则是下一个吊销证书的编号。

至此,CA的搭建以及证书的申请过程就结束了。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86826

(1)
xiamuxiamu
上一篇 2017-09-10 18:47
下一篇 2017-09-10 20:16

相关推荐

  • linux学习的环境构建

    俗话说磨刀不误砍柴工,所以在加入马哥linux培训班后第一件事情就是构建学习环境。在这里把一些心得分享给大家。 1:通过测试比较服务器选择运行ESXI6.0的虚拟机。刚开始准备采用微软的Hyper-v的,但是管理Hyper-v需要域环境(工作组环境下虽然也可以管理,但是配置复杂和安全性很低),额外的增加了系统开销所以果断放弃。 2:通过网络获得Esxi6.0…

    Linux干货 2016-02-28
  • nginx

    Linux干货 2016-10-30
  • Tomcat

        Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但…

    2017-09-05
  • 第一周-2:Linux部分常用命令使用示例、查看命令行工具使用手册以及LinuxFHS部分目录简介

    一、部分命令使用示例: 1、ifconfg 在命令行界面下或系统配置脚本中用于配置、控制及查询TCP/IP网络接口的系统管理工具 [netartisan@localhost 桌面]$ ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 &n…

    Linux干货 2016-11-07
  • 常见HTTP code大全

    1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。  101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功)表示成功处理了请求的状…

    Linux干货 2016-09-19
  • 深入Php底层,用c为php编写拓展

    1.前言              随着lamp/lnmp架构的流行,Php语言越来越得到广泛的使用。php语言在表现层有着非常优异的表现,部署方便,开发迅速。但Php语言也有着天生短板以及局限性—-对多线程以及多进程的支持不甚如意,以及…

    Linux干货 2016-10-29