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

相关推荐

  • 马哥教育网络班22期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。     文件管理类命令有:cp,mv,rm     1. cp:copy           使用方法:      &nbs…

    Linux干货 2016-08-22
  • LVS负载均衡初接触

    Linux Cluster : Cluster : 计算机集合, 为解决某个特定问题组合起来形成的单个系统; Linux Cluster 类型 : LB : Load Balancing, 负载均衡;()HA : High Avaiibality, 高可用;( 通过冗余的方式让活动主机出现问题时取而代之, 并具有原主机一致的功能)HP : High Perf…

    Linux干货 2016-10-28
  • 如何使用正则表达式

    正则表达式(Regular Expression)就是使用简单的字符按照预先设定的规则来完成复杂的功能,说白了,正则表达式是一种字符串的匹配方式,就是用预先设定好的规则来描述我们想要表达的内容,它是由普通字符以及元字符组成的字符串,其中元字符不表示本身的意义,而是用于表达控制或通配等功能。 为什么要用这个东西那,我想,每一个学习计算机的人都应该明白,计算机就…

    Linux干货 2015-10-27
  • week5

    1、显示当前系统上root、fedora或user1用户的默认shell; useradd fedora useradd user1 egrep "^(root|fedora|user1)" /etc/passwd | cut -d: -f1,7 2、找出/e…

    Linux干货 2016-11-24
  • 十一.Linux博客-2016年8月14日if、case、find

    格式说明: 操作 概念 命令 说明及举例 十一.if、case、find if 单分支if开头+条件+then+fi结尾双分支 if else fi多分枝 if elif else fi case case $num in1|3|5)echo xxx;;2|4|5)echo yyy;;*)echo nullesac 多用于离散数值匹配 文件查找和压缩 文件系…

    Linux干货 2016-08-24