CA体系结构介绍与Openssl的使用

目录

汉寿网站建设公司成都创新互联公司,汉寿网站设计制作,有大型网站制作公司丰富经验。已为汉寿超过千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的汉寿做网站的公司定做!

1     CA架构说明

1.1     名词说明

1.2     信任关系说明

2     证书在windows服务中的具体使用方式

3     Openssl实现CA体系的操作方法

3.1      使用自签名证书自建CA(在CA端操作)

3.2      在客户端生成证书申请文件(在APP端操作)

3.3      在CA端颁发证书

3.4     具体案例测试

3.4.1      环境介绍

3.4.2       Centos19安装配置nginx

3.4.3       nginx使用自签名启用ssl认证

3.4.4       使用windows01访问测试---预期效果证书不信任

3.4.5       windows01添加对自签名证书的信任

3.4.6       使用windows01访问测试---预期效果证书信任

3.4.7       在centos18上创建CA

3.4.8       使用CA颁发证书并绑定到nginx

3.4.9       使用windows01访问测试---预期效果证书不信任

3.4.10     windows01添加对CA(centos18)的信任

3.4.11     使用windows01访问测试---预期效果证书信任

 

1    CA架构说明

1.1  名词说明

CA:证书颁发机构,类似与工商局,专门发放证书的机构,只有得到了CA颁发的证书应用才能正常对外提供服务

公钥:顾名思义,公共的秘钥,安全性要求不高,可以共享出来给大家使用

私钥:私有的秘钥,只能自己使用,需要防止泄露

公钥和秘钥的关系:公钥和秘钥成对出现,互相认证,即我的公钥加密的文件只能我的秘钥解开,我的秘钥加密的文件只能我的公钥解开,每个个体(可以是用户或者主机)都可以拥有一对。

证书:采用公钥秘钥的特性生成的一种文件,由CA颁发出来的,类似于营业执照

1.2  信任关系说明

CA体系结构介绍与Openssl的使用

如上图,APP可以是Web server或者其他的应用程序,PC代指浏览APP所提供服务的设备包括电脑手机等设备。PC访问APP时(ssl认证)需要验证APP绑定的证书的真实性,而证书是由CA颁发的,此时PC只要信任CA即可,信任的方式为将CA的自签名证书加入到电脑的“受信任的证书颁发机构”。可以通过windows的控制台或者IE浏览器中的设置查看电脑信任了哪些CA,如下查看方式

打开”internet选项”—“内容”---“证书”---“受信任的根证书颁发机构”可以看到微软已经帮我们信任好了一些公共的CA。

CA体系结构介绍与Openssl的使用

一般找这里面列出来的CA组织申请证书都是需要费用的,所以大家经常会在访问网页时会发现安全证书的警告,这个一般是组织内部CA颁发的或者是自签名证书。自签名证书就是通过将CA与APP所在的服务器合二为一的方式实现的。

#上面的操作是windows系统,如果是RedHat系统可以使用如下方式添加对CA的信任

cat [根证书文件] >> /etc/pki/tls/certs/ca-bundle.crt

2    证书在windows服务中的具体使用方式

由于作者前期是从事Windows运维相关的工作,先简单介绍一下CA在windows AD中的应用。

在AD环境中一般会需要架设一台CA供其他需要证书加密的服务使用,CA架设(集成AD架设的方式)完成之后域中的所有windows设备都会自动信任该CA,域中的所有设备和所有用户都可以向CA申请证书。申请证书的方式有两种,一种是登录CA提供的网页申请,另一种如下:

“开始”---“运行”---“输入mmc回车”---“文件”---“添加删除管理单元”---“证书”如下图

CA体系结构介绍与Openssl的使用

可以使用用户或者主机的名义去申请,这里选择我的用户账户

CA体系结构介绍与Openssl的使用

右键“个人”---“所有任务”---“申请新证书”点击下一步

CA体系结构介绍与Openssl的使用

在这个界面需要在CA端定义了注册策略之后,这里就会显示注册策略,选择相应的注册策略之后申请就会被提交到CA,在CA端进行证书颁发之后在证书这一列就会显示出来证书了

CA体系结构介绍与Openssl的使用

这里就简单的介绍了一下windows AD环境中的证书申请方法,如果CA是使用第三方工具如openssl等工具搭建的,具体的操作方法也可能会有一些差异

3    Openssl实现CA体系的操作方法

3.1  使用自签名证书自建CA(在CA端操作)

#创建私钥

openssl genrsa -out cakey.pem 4096 

#使用上面的私钥创建证书,这个证书被称为根证书,一台电脑将这个证书导入到“受信任的根证书颁发机构”后就相当于信任的这个CA

openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650

3.2  在客户端生成证书申请文件(在APP端操作)

#生成私钥

openssl genrsa -out app.key 4096

#生成证书申请文件,实际上是生成了一个自签名证书,只是后面需要拿给CA签名

openssl req -new -x509 -key app.key  -out app.csr -days 3650

3.3  在CA端颁发证书

#将上一步生成的私钥拷贝到CA端,执行如下操作

openssl ca -in httpd.csr -out httpd.crt -days 3650

#证书生成完成后可以通过如下命令查看证书

Openssl x509 -in httpd.crt -noout -serial -subject

3.4  具体案例测试

3.4.1环境介绍

Centos18:CA

Centos19:运行了nginx,并开启ssl模块,向CA申请证书

Windows01:做实验的windows电脑,命名为windows01

3.4.2Centos19安装配置nginx

使用源码安装太麻烦,直接使用epel的yum源来安装,如下yum源供参考,具体的安装步骤就不多做介绍了

CA体系结构介绍与Openssl的使用

3.4.3nginx使用自签名证书启用ssl认证

#创建私钥

openssl genrsa -out httpd.key 1024 

#使用上面的私钥创建证书

openssl req -new -x509 -key httpd.key -out httpd.crt -days 3650

将私钥和证书的路径填入/etc/nginx/nginx.conf中的如下字段,这些字段默认是注释掉的,需要去掉注释

CA体系结构介绍与Openssl的使用

3.4.4使用windows01访问测试---预期效果证书不信任

访问https://centos19发现证书错误

CA体系结构介绍与Openssl的使用

查看证书详情可以看到是由centos19自己颁发的证书,并且不受信任

CA体系结构介绍与Openssl的使用

3.4.5windows01添加对自签名证书的信任

添加信任可以直接将3.4.3中生成的证书拷贝到windows01中进行安装,或者直接在网页中查看证书时安装(这种方式在有些情况下可能不适用)。下面介绍一下第二种方式

如图查看证书,安装证书---下一步

CA体系结构介绍与Openssl的使用

选择存储位置为“受信任的根证书颁发机构”

CA体系结构介绍与Openssl的使用

安装完成之后,就添加了对centos19的信任了

3.4.6使用windows01访问测试---预期效果证书信任

重新访问网页查看发现没有报错了

CA体系结构介绍与Openssl的使用

CA体系结构介绍与Openssl的使用

 

3.4.7在centos18上创建CA

创建所需的目录和文件,这些文件目录的配置都在/etc/pki/tls/openssl.conf中定义

CA体系结构介绍与Openssl的使用

然后按照3.1中的方法创建CA的私钥和证书如下

#创建私钥

openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096 

#使用上面的私钥创建证书,这个证书被称为根证书,一台电脑将这个证书导入到“受信任的根证书颁发机构”后就相当于信任的这个CA

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

3.4.8使用CA颁发证书并绑定到nginx

#在centos19上生成私钥

openssl genrsa -out httpd.key 4096

#在centos19上生成证书申请文件

openssl req -new -key httpd.key -out httpd.csr -days 3650

#编辑nginx配置文件/etc/nginx/nginx.conf,将新申请的私钥和证书绑定到nginx

CA体系结构介绍与Openssl的使用

使配置生效

Nginx -s reload

3.4.9使用windows01访问测试---预期效果证书不信任

访问https://centos19发现证书不信任

CA体系结构介绍与Openssl的使用

查看证书发现证书是由centos18颁发给centos19的,证明是CA颁发的证书

3.4.10         windows01添加对CA(centos18)的信任

将3.4.7中CA生成的自签名证书文件cakey.pem拷贝到windows01上,但是需要将后缀名修改为crt,将这个证书文件导入到“受信任的根证书颁发机构”

打开这个文件并导入,如下图可以看出该根证书文件的确是由CA(centos18)颁发给自己的。

CA体系结构介绍与Openssl的使用

做完该操作之后就信任了CA了,以后CA颁发的所有证书都不用再单独做信任关系了。

3.4.11         使用windows01访问测试---预期效果证书信任

完成上一步操作之后,再次访问页面已经没有证书警告了

CA体系结构介绍与Openssl的使用


新闻标题:CA体系结构介绍与Openssl的使用
本文链接:http://azwzsj.com/article/gcegji.html