在Linux系统中实现CA

Posted

tags:

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

前言


        CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。

它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和

公钥的拥有权。。

        CA 也拥有一个证书(内含公钥)和私钥。网上的公众用户通过验证 CA 的签字从而信任 CA ,任

何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分

配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请

者。如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验

证通过,该证书就被认为是有效的


一、CA端


认识CA配置文件:/etc/pki/CA

技术分享

其中,certs表示存储签署证书;crl表示证书吊销列表;private表示私钥存储的位置。newcerts我们在

创建密钥对时,系统会自动生成证书列表,存储在newcerts目录下。

1、创建所需文件:

技术分享

其中,index.txt表示生成证书索引数据库文件;serial表示下一次颁发证书的序列号,01表示颁发证书的

第一个序号为01。

2、CA生成自签署证书

生成密钥对:

技术分享

生成自签证书:

技术分享

其中 -new:表示生成新证书签署请求;

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

        -key:生成新证书签署请求时用到的私钥文件;

        -days:表示证书的有效期,默认单位:年;

        -out:表示生成的签署证书保存的位置;

我们可以导出该证书到Windows中看看。

技术分享


二、CA-client端


        认识CA配置文件:/etc/pki/tls ,该目录中的文件和/etc/pki/CA中的大体一样,只是后者是用作给

别人签署时的文件,前者是存放申请自签证书请求相关的文件。

1、生成私钥文件

技术分享

这次我们选择不加密私钥文件,去掉了-des3选项

2、生成证书申请文件

技术分享

上述生成证书签署请求我们可以不指定证书的有效期,因为是CA给你颁发,时间是有CA决定的,所以我

在这里就没有写有效日期;其次,由于不是自签署证书,所以没有x509选项

3、将证书签署请求文件传输至CA

技术分享

使用scp命令进行远程复制时必须要保证两台主机都安装scp服务才可以,有一个没安装,复制都将失

败。scp服务所在的包为openssh包,使用yum -y install openssh-client安装,如果没有配置yum仓

库,请阅读博客:http://vinsent.blog.51cto.com/13116656/1962172


三、CA签署证书并发送给CA-client


之前将CA-client的证书申请传送给了CA,接下来CA便要签署该证书,给他盖个戳。

技术分享

请仔细阅读证书中的内容,重点地方都标记出来了,如果没有问题那么CA-client的证书请求将签署

成功。你可以查看文件index.txt来查看其信息:

技术分享

复制该证书至CA-client

[email protected] CA ]#scp certs/app.crt 172.18.252.50:/etc/pki/tls/certs


四、吊销证书


        证书信息存储在index.txt文件中,我们要想吊销其中的证书,首先需要创建吊销列表的编号:

echo 01 > /etc/pki/CA/crlnumber。然后使用openssl命令在加上证书(该证书存储在/etc/pki/CA

/newcerts/01.pem)来吊销列表。例如:openssl ca revoke /etc/pki/CA/nercerts/01.pem

但是,我们光吊销了证书还不行,必须发布到CRL中才可,告知其他用户,该证书已经失效。使用命令

openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem 更新吊销列表。你可以将该文件导出至Windows中

查看其吊销列表。


五、补充


        假如你还想给另外的服务申请证书,由于之前生成过密钥对,那么你直接生成申请证书即可,

[ [email protected] tls ]#openssl req -new -key private/app.key -out app2.csr;然后重复上述步骤,

在签署一遍即可。在提供给大家几个查看证书信息的命令:

openssl x509 -in /etc/pki/CA/crts/app.crt -noout -text|issuer|subject|serial|dates

        如果你还有一个主机,你想用上述的CA-client继续为其他主机签署证书,大体步骤与上述流程一

致,不过值得注意的是:你在生成证书subca.csr的时候不在是自己签署(即没有x509选项),你需要根

CA为你签署。

        到此我们就完成CA证书的签署、当然了这只是实现CA的创建与签署,并没有加以使用,如果你有

相关的服务,例如:http。谢谢阅读~


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

以上是关于在Linux系统中实现CA的主要内容,如果未能解决你的问题,请参考以下文章

在片段中实现 onClickListener

在多个片段中的片段中实现选项卡

尝试在片段中实现 OnClick 侦听器 [重复]

在 recyclerview 片段中实现上下文操作模式的问题

在 webview 片段中实现后退按钮

从片段中获取意图值后,我如何在 recyclerview 项目中实现单击