如何搭建CA

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何搭建CA相关的知识,希望对你有一定的参考价值。

今天小编讲讲怎么搭建CA,开讲之前先说一一下什么是CA,

发送数据过程:

发送方: 计算数据特征值----> 使用私钥加密特征值 ---> 随机生成密码对称加密整个数据 ---> 使用接受方公钥加密密码

接收方: 使用私钥解密密码 ----> 解密整个数据 ----> 使用公钥验证身份 ----> 比较数据特征值

那么问题来了,谁来管理公钥,任何在互联网上传播的数据都不安全,更不用说传递公钥,它如果被篡改,那就无法验证身份,所以不可能由用户自己颁发公钥。

这个时候需要有一个具有公信力的中间机构来做这份工作,那就是CA,由此引发了两个概念:

CA : 证书颁发机构

PKI : 公钥基础设施,公钥基础构架

证书: 里面存放了用户的各种信息,最核心的部分就是公钥

但是还有一个问题,谁来给CA颁发公钥,解决方法是,CA自己给自己颁发公钥。。。

下面小编来讲讲如何自己搭建CA

  1. 先看看有没有openssl工具,没的话就装一个

    技术分享

2.创建所需要的文件

touch /etc/pki/CA/index.txt 生成证书索引数据库文件

echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

    技术分享

3.CA自签证书

3.1生成私钥

cd /etc/pki/CA/

(umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

        

        3.2生成自签名证书

openssl req -new -x509 –key  /etc/pki/CA/private/cakey.pem -days 7300  -out   /etc/pki/CA/cacert.pem

-new: 生成新证书签署请求

-x509: 专用于CA生成自签证书

-key: 生成请求时用到的私钥文件

-days n:证书的有效期限

-out /PATH/TO/SOMECERTFILE: 证书的保存路径

     技术分享   

4、颁发证书

A 在需要使用证书的主机生成证书请求给web服务器生成私钥

(umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048)

 生成证书申请文件

  openssl req -new -key /etc/pki/tls/private/test.key   -days 365 -out etc/pki/tls/test.csr

B 将证书请求文件传输给CA

C CA签署证书,并将证书颁发给请求者

openssl ca -in /tmp/test.csr –out  /etc/pki/CA/certs/test.crt -days 365

        注意:默认国家,省,公司名称三项必须和CA一致

D 查看证书中的信息:

openssl x509 -in /PATH/FROM/CERT_FILE -noout  -text|issuer|subject|serial|dates

openssl ca -status SERIAL 查看指定编号的证书状态

技术分享 

技术分享

技术分享

技术分享

5、吊销证书

A 在客户端获取要吊销的证书的serial

openssl x509 -in /PATH/FROM/CERT_FILE -noout  -serial -subject

B 在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,

吊销证书

openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem


C 指定第一个吊销证书的编号

注意:第一次更新证书吊销列表前,才需要执行

echo 01 > /etc/pki/CA/crlnumber

D 更新证书吊销列表

openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem

查看crl文件:

openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text



按着步骤一步一来,就好了,截图是根据文字一步一步做的。

本文出自 “shell脚本” 博客,转载请与作者联系!

以上是关于如何搭建CA的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建HTTP/HTTPS服务

windows server 2003搭建CA服务器并启用https(SSL)

证书服务器CA的搭建和管理

搭建私有CA服务器

搭建私有CA

私有CA搭建