CA,也就是Certificate Authority,证书颁发机构,也称为证书授权中心:
职责是负责颁发与管理数字证书。

在访问网站的时候,你所能看到的CA证书可能是这样子的形式:

百度:

entrust:

可以看到,在讨论CA中心的时候,我们其实涉及到这几个部分:
1. CA中心
2. HTTPS协议
3. SSL
4. 认证或者签名的颁发与验证(生效)

在下面的章节里,会详细介绍一个CA中心是怎么被建立起来的,当然了,这里是内网私有的CA中心,并且是构建在Linux之上的。

一、部署CA中心

RPM:openssl

Openssl,配置文件【openssl.cnf】:

CA工作目录:

生成CA私钥:

私钥名需要和配置文件中的一样:

开始生成:

生成自签名证书:
这一步的前提条件是【私钥文件】
这一步的输出是【自签证书】

具体如下:

自签名证书成功生成后,可以查看验证一下:

接下来,初始化CA的工作环境:

我们会创建这么几个文件或路径:
1. 索引文件【index.txt】:用于匹配证书编号
2. 证书序列号文件(也称为证书编号位置)【serial】:在首次生成证书时,赋值:第一次可以自定义证书开始的编号,比如,从【01】开始
3. 已吊销的证书编号【crlnumber】:可以创建一个目录存放
4. 证书请求【目录】
5. 证书【目录】

具体如下:
目录创建:

crl – 吊销证书目录
newcert – 证书目录
csr – 证书请求目录

创建文件:

至此,CA中心的搭建,就初步完成了。

二、部署HTTPD服务

这里,我在另一个服务器上部署HTTPD。

YUM:httpd

首先,把HTTP拉起来。

修改配置文件:

只是增加了上面的内容,没有对前面的做改动,保持默认。

WEB数据:

启动HTTPD服务:

查看端口情况:

网页访问:
http://192.168.174.130

然后来配HTTPS。

三、向CA中心申请证书

节点服务器。

生成HTTPD私钥:

生成到CA中心的证书请求文件(CSR,Cerificate Signing Request)

CSR的作用是:
1. 电子证书的申请者在申请证书的时候需要提供的文件
2. CSR是由CSP(加密服务提供者)在生成私钥的同时生成的证书请求文件
3. 证书颁发机构(CA中心),使用CA中心的根证书的私钥签名生成证书文件(CRT),即完成【颁发证书】这件事

具体操作如下:

注意:
上面这两步,生成key和生成CSR可以合为一步,如下:

将CSR发给CA中心:

CA中心操作接下来的部分。

CA中心进行签名:

文件如下:

验证:第一次

可以看到,由于组织名称不匹配,所以签名验证失败。

(正确的情况)重新生成CSR,提供和CA中心匹配的组织名,然后重新操作上面的步骤就没问题了,如下:
注意,这里使用的是openssl.cnf中默认的cert文件签名的,在后面你可能会有很多CERT文件。

或者,指定cert文件,来签名:

生成一个CA签名后,对CA工作目录的改变如下:

然后,将CA中心签名过的CRT,传到目标服务器上:

目标服务器创建存放CRT的目录:

开始传输:

四、HTTPD配置HTTPS

YUM:mod_ssl

配置:

重启服务HTTPD:

访问网站:
https://192.168.174.130/lenka/

——————————————

另外,需要注意的是:
1. 生成CSR的时候的KEY很重要
2. 最后拿到的CRT的MD5需要和最初的KEY的MD5一致,否则就会出现错误。

它们一致的样子:

如果不一致,httpd服务将会启动失败:

日志:
error:

ssl_error:

——————————————
至此,CA中心的搭建到初步使用已经完成。
——————————————
Done。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装