天天看点

创建私有CA及私有CA的使用

     ca分为公共信任ca和私有ca,若想使用公共信任的ca需要很多的money,如果想要在有限范围内使用ca认证方式,可以自己创建一个。下面了解一下ca及其创建方法:

      ca的配置文件为 /etc/pki/tls/openssl.cnf,奥秘都在里边了。

创建私有ca的步骤:

       说明:在配置为ca服务器上生成一个自签证书,并为为ca提供所需要的目录及文件,目录包括:certs, crl, newcerts;文件包括:serial,index.txt。即将以上目录或文件 在/etc/pki/ca/手动创建。

1.  生成私钥,默认放置在/etc/pki/ca/private下

命令解析: umask 077:私钥不能让除本人之外的其他人所能查看,所以要给予600权限。括号中的umask仅在子shell中起作用,并不影响当前shell; -out:将生成的私钥存输出至文件中,此处要注意,/etc/pki/ca/private/cakey.pem 私钥文件名要与在ca的配置文件中默认的私钥文件名一致 private_key     = $dir/private/cakey.pem 4096:指明私密长度  查看私钥文件:

2.  生成自签证书:将自签证书放在/etc/pki/ca/中

注意:此过程中使用的是私钥,这应该是不允许的,应该用公钥自签才对啊? 在此过程中会自动从私钥中抽取出公钥,并放到该目录下,此处自签的仍然是公钥。 req:证书请求及证书生成工具 -new:生成新证书签署请求 -x509:生成自签格式证书,专用于创建私有ca;若不自签则不用此参数 -key:生成请求时用到的私有秘钥文件路径 -out:生成的请求文件路径;如果是自签操作,则直接生成签署过的证书; -days:证书的有效期限,单位是day;
-out:生成的请求文件路径;如果是自签操作,则直接生成签署过的证书 -days:证书的有效期限,单位是day 查看生成的自签证书:

3.  为ca提供所需要的目录及文件,给定一个序列号:

至此私有ca创建完毕。那如何让其他服务器到此私有ca签证呢?需要用到证书进行安全通信的服务器想ca请求签署证书。

客户端到ca签署证书步骤:(此处以httpd服务为例进行创建,下面我将更换一个主机(centos6-01)做证书签署操作。)

        思路分析:需要在服务的目录下创建一个ssl目录,并在这个ssl目录下创建一个私钥和签证请求。将请求发给ca,让ca签署书。

1.  在用到证书的主机上生成私钥:

       #在/etc/httpd/ssl目录下创建一个名为httpd.key私钥

2.  生成证书签署请求

#在/etc/httpd/ssl/目录中创建一个有效期限为365天、名为httpd.csr 签证请求文件。此处与ca创建时生成签署请求一样,从私钥中抽取公钥,并生成签署请求文件。因为是私有ca,此处的证书服务器的公司名与证书颁发者要在一个单位,否则可能会通过不了。

3.  将此请求通过可靠的方式发给ca主机:一般情况下是ca住址用移动设备考走,本次是使用远程复制命令将请求文件复制到ca主机上进行签证。

     到172.16.44.11主机上的/tmp中可看到签证请求文件。

4.  在ca主机上签署证书;在ca主机上执行

签证成功, httpd.crs文件就可以删除了。data base update此处是更新/etc/pki/ca/中的index.txt数据,查看证书中的信息:

5.  将签好的文件发送到申请签发主机上:

为保证信息不泄露,可将请求签署主机和ca主机上的httpd.csr文件删除。

serial换成证书真正的序列号

3、 生成吊销证书的吊销编号(第一次吊销证书时执行)

[root@centos7-01 newcerts]#echo 01 > /etc/pki/ca/crlnumber 吊销序列号

4、 更新证书吊销列表

[root@centos7-01 newcerts]#openssl ca -gencrl -out thisca.crl

查看crl文件:

[root@centos7-01 newcerts]#openssl crl –in /path/from/crl_file.crl -noout –text

继续阅读