在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的主要内容,如果未能解决你的问题,请参考以下文章