CentOS 6使用openssl搭建根CA

点击打开链接

一、简介

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

二、搭建

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

[root@ ~]# 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

CentOS 6使用openssl搭建根CA_第1张图片

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

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

[root@ 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

CentOS 6使用openssl搭建根CA_第2张图片


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

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

CentOS 6使用openssl搭建根CA_第3张图片

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

# cat cacert.pem

CentOS 6使用openssl搭建根CA_第4张图片

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

# openssl x509 -text -in cacert.pem

CentOS 6使用openssl搭建根CA_第5张图片

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

# touch index.txt serial crlnumber

CentOS 6使用openssl搭建根CA_第6张图片

# echo 01 > serial

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


三、证书的申请签署

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

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

CentOS 6使用openssl搭建根CA_第7张图片


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

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

CentOS 6使用openssl搭建根CA_第8张图片

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

CentOS 6使用openssl搭建根CA_第9张图片

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

CentOS 6使用openssl搭建根CA_第10张图片


四、吊销证书

# openssl ca -revoke client.crt

wKiom1WxyXfT0sf1AABy24oD0Cw172.jpg

# cd /etc/pki/CA/

# cat index.txt

CentOS 6使用openssl搭建根CA_第11张图片


五、附录

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@ ~]# 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

CentOS 6使用openssl搭建根CA_第12张图片

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

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

[root@ 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

CentOS 6使用openssl搭建根CA_第13张图片


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

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

CentOS 6使用openssl搭建根CA_第14张图片

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

# cat cacert.pem

CentOS 6使用openssl搭建根CA_第15张图片

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

# openssl x509 -text -in cacert.pem

CentOS 6使用openssl搭建根CA_第16张图片

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

# touch index.txt serial crlnumber

CentOS 6使用openssl搭建根CA_第17张图片

# echo 01 > serial

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


三、证书的申请签署

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

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

CentOS 6使用openssl搭建根CA_第18张图片


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

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

CentOS 6使用openssl搭建根CA_第19张图片

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

CentOS 6使用openssl搭建根CA_第20张图片

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

CentOS 6使用openssl搭建根CA_第21张图片


四、吊销证书

# openssl ca -revoke client.crt

wKiom1WxyXfT0sf1AABy24oD0Cw172.jpg

# cd /etc/pki/CA/

# cat index.txt

CentOS 6使用openssl搭建根CA_第22张图片


五、附录

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

你可能感兴趣的:(运维学习,电脑问题解决,运维学习笔记)