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

相关推荐

  • 文本处理工具

    文本查看工具 less [les]  查看文件 功能比MORE更强大      -N  显示行号      查看时使用的命令      / OR ? 搜索的内容    搜索关键字 &nbsp…

    Linux干货 2017-04-13
  • DNS实验

    正向解析 编辑/etc/named.conf listen-on port 53 { 172.0.0.1; 192.168.209.134; }; //listen-on-v6 port 53 { ::1; }; allow-query { any; }; dnssec-enable no; dnssec-validation no; 编辑/etc/name…

    Linux干货 2017-05-31
  • N23_第1周博客作业

    1、描述计算机的组成及其功能。     根据冯·诺依曼体系计算机有中央处理器、主存储器、输入/输出三个子系统组成。 1.中央处理器 CPU(Central Processing Unit)用于数据运算。CPU有控制单元、算数逻辑单元、寄存器组组成。 (1)控制单元:控制各个子系统操作 (2)算数逻辑单元:对数据进行逻辑、移位和算数运算 逻…

    Linux干货 2016-09-19
  • Linux用户与用户组的详解

    添加用户   创建或添加新用户使用useradd命令来实现,其命令用法为:   useradd [option] username   该命令的option选项较多,常用的主要有:   -c 注释      用户设置对账户的注释说明文字  …

    Linux干货 2016-08-05
  • 高可用Nginx

    高可用Nginx 基于vrrp流动一个IP地址 各节点时间必须同步; 确保iptables以及selinux不会成为阻碍; 各节点之间可通过主机名互相同喜(对KA而言并非必须) 确保各节点的用于集群服务的接口支持MULTICAST通信 IPv4,D类地址224-239 环境: node1:172.16.253.223 li1.jing.io node1 no…

    Linux干货 2017-06-28
  • 马哥教育网络班20期+第6周课程练习

    vim编辑器使用总结 一、文件的打开与关闭             打开文件:                 # vim [OPTION]… FILE…      …

    Linux干货 2016-07-17