CA自建和证书申请

Posted

tags:

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

CA简介:CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

证书简介:现在我们通过浏览器访问网站,一般都有证书的,这些证书就是有CA颁发的,证明你这个网站是可靠的,尤其是一些购物网站,如:淘宝,京东,我们可以查看网站的源码来查看他的证书(F12)找到Security查看。

LINUX模拟CA的建立和证书的申请

如何实现:

我们模拟把主机A当做根CA自建一个,主机B通过Openssl命令来模拟申请证书。

openssl配置文件:

/etc/pki/tls/openssl.cnf 我们找到CA和policy_match部分了解CA相关文件的存放和证书存放的文件。


dir= /etc/pki/CA CA相关文件的主目录

certs= $dir/certs 存放发布证书的文件

crl_dir= $dir/crl     证书吊销列表

database= $dir/index.txt 证书编号[默认不存在,要手动创建,不然会报错]

new_certs_dir= $dir/newcerts 新颁发证书存放目录

certificate= $dir/cacert.pem   CA服务端的自签名证书

serial= $dir/serial  下一个将要颁发证书的序列号 [默认不存在,要手动创建,不然会报错]

crlnumber= $dir/crlnumber 吊销证书的编号

crl= $dir/crl.pem  吊销证书存放的文件

private_key= $dir/private/cakey.pem证书的私钥存放文件


policy= policy_match

# For the CA policy

[ policy_match ]

countryName= match       国家

stateOrProvinceName= match   省市

organizationName= match       公司名称

organizationalUnitName= optional   公司单元名 可以不填 随便怎么翻译吧= =

commonName= supplied   名字

emailAddress= optional    邮箱

其中match表示自建根CA和申请证书时所填信息必须一致,optional可写可不写,supplied要写可以不一样。


主机A的配置

建立文件:

touch /etc/pki/CA/index.txt

echo 01 > /etc/pki/CA/serial

技术分享

生成私钥文件

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

括号里定义umask进入子进程,只修改私钥文件的权限 -des3是对私钥文件进行加密  [文件名是特定的,不能更改]


生成一个自签名CA证书

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: 证书的保存

技术分享自签名CA填写信息如上图,根据policy可知其中前124选项为match必须匹配,第5选项为supplied,为颁发者的名字,其他可以不填。


这样我们的自签名CA的相关文件就准备好了。

技术分享


主机B的配置:

生成自己的私钥:还是一样的命令

(umask 066;openssl genrsa -out /etc/pki/tls/private/wrz.key 2048)2048 指定位数

生成证书申请文件

openssl req -new -key /etc/pki/tls/private/wrz.key -days 365 -out /etc/pki/tls/wrz.csr 这是出现的界面和生成自签CA一样,需要填写信息

技术分享

其中124选项在policy中为match,所以要和自签CA时填写的一致,第6项为被颁发的名称。其他可填可不填。

将证书申请文件发送到主机A上:scp /etc/pki/tls/wrz.csr 192.168.109.159:/etc/pki/CA/


主机A收到证书申请文件

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

命令:openssl ca -in /etc/pki/tls/wrz.csr -out /etc/pki/CA/certs/wrz.crt -days 365 然后出现技术分享确认信息无误后就可以签名颁发证书了。

用sz命令把linux上生成的证书发送到Windows上,修改下后缀为.per 安装证书,这样就完成了自签CA和证书颁发的过程。技术分享

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

如何生成CA证书

MAC申请自签名的ssl证书

私有CA的创建和证书的申请

CA服务器的搭建和申请证书

ca证书申请流程有哪些?

Openssl 创建CA和申请证书