28
2019
03
17:57:31

CentOS 6使用openssl搭建根CA



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

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

[iyunv@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
 
2、切换到/etc/pki/CA/目录,使用openssl命令给自己生成一个私钥
[iyunv@vpn ~]# cd /etc/pki/CA/              
[iyunv@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
 

3、CA需要一个自签证书,所以我们给它使用openssl命令生成一个自签证书
[iyunv@vpn CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
 
以上信息请根据自己的实际情况进行填写,接下来我们可以查看生成的证书
# cat cacert.pem
 
但是从中我们看不到什么信息,下面我们可以通过openssl查看
# openssl x509 -text -in cacert.pem
 
4、创建CA的相关目录和文件,指定序列号起始数字,它们在CA所在目录创建
# touch index.txt serial crlnumber
 
# echo 01 > serial

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

三、证书的申请签署
1、我们以客户端身份进行证书申请,首先我们应该先建立自己的私钥
# (umask 077; openssl genrsa -out client.key 1024)
 

2、客户端如果想申请获得证书的话,需要创建一个申请证书,传递给CA
# openssl req -new -key client.key -out client.csr
 
csr: Certificate Signing Request(证书签发申请)
最后可以输入密码来进行证书申请的加密,我这里不进行加密了

(以上还可以使用以下操作,切换到/etc/pki/tls/certs目录下面,运行# make client.csr)
3、在CA端给客户端颁发证书,使用openssl命令
# openssl ca -in client.csr -out client.crt -days 365
 
证书签发成功,以上就是签发的信息
 

四、吊销证书
# openssl ca -revoke client.crt
 
# cd /etc/pki/CA/
# cat index.txt
 

五、附录
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

本文链接:https://hqyman.cn/post/451.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: