CentOS 6使用openssl搭建根CA

点击打开链接

一、简介

    OpenSSL是一款开源的加密工具,在Linux环境下,我们能够利用它来搭建一个CA来实现证书的发放,可以用于企业内部使用的加密工具,下面是用OpenSSL这个强大的工具,在Linux下构建一个CA,来实现证书管理。

二、搭建

1、我们首先看一下CA的目录结构

[root@vpn ~]# tree /etc/pki/CA

/etc/pki/CA

├── certs

├── crl

├── newcerts

└── private

下面我会讲解两种方法,一种是使用命令openssl,还有一直是使用Makefile文件生成(用紫色标示)

Makefile在目录/etc/pki/tls/certs下,在开始之前,为了不频繁的输入申请认证的一些信息,我们对openssl.cnf文件下面进行一些修改

# vim /etc/pki/tls/openssl.cnf

wKioL1XAewjiPfTmAAOyNvjhlNU636.jpg

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

[root@vpn ~]# cd /etc/pki/CA/              

[root@vpn CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)

Generating RSA private key, 2048 bit long modulus

.......................+++

.........................................................+++

e is 65537 (0x10001)

(以上还可以使用以下操作,切换到/etc/pki/tls/certs目录下面,运行# make cakey.pem)

  .pem的证书私钥和公钥都在同一个文件,如果想查看私钥对应的公钥,可以使用如下命令

# openssl rsa -in private/cakey.pem -pubout

wKioL1Wx0N2ykec-AAGVKjGU7qo510.jpg


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

[root@vpn CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

wKiom1Ws67qCH0uVAAJ9jVpZ59Y399.jpg

以上信息请根据自己的实际情况进行填写,接下来我们可以查看生成的证书

# cat cacert.pem

wKiom1Wx0I7iwJm0AARY6RrZyas510.jpg

但是从中我们看不到什么信息,下面我们可以通过openssl查看

# openssl x509 -text -in cacert.pem

wKioL1Wx0rmDv5qwAAWMtouV9HU455.jpg

4、创建CA的相关目录和文件,指定序列号起始数字,它们在CA所在目录创建

# touch index.txt serial crlnumber

wKiom1Ws77aiJewiAAE7IbkX9wY110.jpg

# echo 01 > serial

到目前我们自建的CA颁发机构就已经搭建完成了,下一步我们为其他申请进行证书签发操作


三、证书的申请签署

1、我们以客户端身份进行证书申请,首先我们应该先建立自己的私钥

# (umask 077; openssl genrsa -out client.key 1024)

wKiom1Ws8bPxW19QAAE_o-BrhEc445.jpg


2、客户端如果想申请获得证书的话,需要创建一个申请证书,传递给CA

# openssl req -new -key client.key -out client.csr

wKiom1Ws8vLSEVeIAALCBhBsR5k290.jpg

csr: Certificate Signing Request(证书签发申请)

最后可以输入密码来进行证书申请的加密,我这里不进行加密了,除Common Name、Email Address以外,以上所有值必须和CA证书所填信息保持一致,否则无法得到验证。

(以上还可以使用以下操作,切换到/etc/pki/tls/certs目录下面,运行# make client.csr)

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

# openssl ca -in client.csr -out client.crt -days 365

wKioL1Ws9xXjcZQrAAMtDk2waKc022.jpg

证书签发成功,以上就是签发的信息

wKioL1Ws90_wV6BaAAD2BxAtE6s020.jpg


四、吊销证书

# openssl ca -revoke client.crt

wKiom1WxyXfT0sf1AABy24oD0Cw172.jpg

# cd /etc/pki/CA/

# cat index.txt

wKioL1Wxy53CZlmhAAKE8HG2t9g314.jpg


五、附录

openssl中有如下后缀名的文件

.key格式:私有的密钥

.crt格式:证书文件,certificate的缩写

.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写

.crl格式:证书吊销列表,Certificate Revocation List的缩写

.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

 

常用证书协议

x509v3: IETF的证书标准

x.500:目录的标准

SCEP:  简单证书申请协议,用http来进行申请,数据有PKCS#7封装,数据其实格式也是PKCS#10的

PKCS#7:  是封装数据的标准,可以放置证书和一些请求信息

PKCS#10:  用于离线证书申请的证书申请的数据格式,注意数据包是使用PKCS#7封装这个数据

PKCS#12:  用于一个单一文件中交换公共和私有对象,就是公钥,私钥和证书,这些信息进行打包,加密放在存储目录中,CISCO放在NVRAM中,用户可以导出,以防证书服务器挂掉可以进行相应恢复。思科是.p12,微软是.pfx

一、简介

    OpenSSL是一款开源的加密工具,在Linux环境下,我们能够利用它来搭建一个CA来实现证书的发放,可以用于企业内部使用的加密工具,下面是用OpenSSL这个强大的工具,在Linux下构建一个CA,来实现证书管理。

二、搭建

1、我们首先看一下CA的目录结构

[root@vpn ~]# tree /etc/pki/CA

/etc/pki/CA

├── certs

├── crl

├── newcerts

└── private

下面我会讲解两种方法,一种是使用命令openssl,还有一直是使用Makefile文件生成(用紫色标示)

Makefile在目录/etc/pki/tls/certs下,在开始之前,为了不频繁的输入申请认证的一些信息,我们对openssl.cnf文件下面进行一些修改

# vim /etc/pki/tls/openssl.cnf

wKioL1XAewjiPfTmAAOyNvjhlNU636.jpg

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

[root@vpn ~]# cd /etc/pki/CA/              

[root@vpn CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)

Generating RSA private key, 2048 bit long modulus

.......................+++

.........................................................+++

e is 65537 (0x10001)

(以上还可以使用以下操作,切换到/etc/pki/tls/certs目录下面,运行# make cakey.pem)

  .pem的证书私钥和公钥都在同一个文件,如果想查看私钥对应的公钥,可以使用如下命令

# openssl rsa -in private/cakey.pem -pubout

wKioL1Wx0N2ykec-AAGVKjGU7qo510.jpg


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

[root@vpn CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

wKiom1Ws67qCH0uVAAJ9jVpZ59Y399.jpg

以上信息请根据自己的实际情况进行填写,接下来我们可以查看生成的证书

# cat cacert.pem

wKiom1Wx0I7iwJm0AARY6RrZyas510.jpg

但是从中我们看不到什么信息,下面我们可以通过openssl查看

# openssl x509 -text -in cacert.pem

wKioL1Wx0rmDv5qwAAWMtouV9HU455.jpg

4、创建CA的相关目录和文件,指定序列号起始数字,它们在CA所在目录创建

# touch index.txt serial crlnumber

wKiom1Ws77aiJewiAAE7IbkX9wY110.jpg

# echo 01 > serial

到目前我们自建的CA颁发机构就已经搭建完成了,下一步我们为其他申请进行证书签发操作


三、证书的申请签署

1、我们以客户端身份进行证书申请,首先我们应该先建立自己的私钥

# (umask 077; openssl genrsa -out client.key 1024)

wKiom1Ws8bPxW19QAAE_o-BrhEc445.jpg


2、客户端如果想申请获得证书的话,需要创建一个申请证书,传递给CA

# openssl req -new -key client.key -out client.csr

wKiom1Ws8vLSEVeIAALCBhBsR5k290.jpg

csr: Certificate Signing Request(证书签发申请)

最后可以输入密码来进行证书申请的加密,我这里不进行加密了,除Common Name、Email Address以外,以上所有值必须和CA证书所填信息保持一致,否则无法得到验证。

(以上还可以使用以下操作,切换到/etc/pki/tls/certs目录下面,运行# make client.csr)

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

# openssl ca -in client.csr -out client.crt -days 365

wKioL1Ws9xXjcZQrAAMtDk2waKc022.jpg

证书签发成功,以上就是签发的信息

wKioL1Ws90_wV6BaAAD2BxAtE6s020.jpg


四、吊销证书

# openssl ca -revoke client.crt

wKiom1WxyXfT0sf1AABy24oD0Cw172.jpg

# cd /etc/pki/CA/

# cat index.txt

wKioL1Wxy53CZlmhAAKE8HG2t9g314.jpg


五、附录

openssl中有如下后缀名的文件

.key格式:私有的密钥

.crt格式:证书文件,certificate的缩写

.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写

.crl格式:证书吊销列表,Certificate Revocation List的缩写

.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

 

常用证书协议

x509v3: IETF的证书标准

x.500:目录的标准

SCEP:  简单证书申请协议,用http来进行申请,数据有PKCS#7封装,数据其实格式也是PKCS#10的

PKCS#7:  是封装数据的标准,可以放置证书和一些请求信息

PKCS#10:  用于离线证书申请的证书申请的数据格式,注意数据包是使用PKCS#7封装这个数据

PKCS#12:  用于一个单一文件中交换公共和私有对象,就是公钥,私钥和证书,这些信息进行打包,加密放在存储目录中,CISCO放在NVRAM中,用户可以导出,以防证书服务器挂掉可以进行相应恢复。思科是.p12,微软是.pfx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值