博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下实现CA认证
阅读量:7112 次
发布时间:2019-06-28

本文共 1494 字,大约阅读时间需要 4 分钟。

我们知道,当客户端与服务器端建立会话之前,首先是客户端发送请求,然后进行TPC/IP的三次握手,接着客户端与服务器端建立ssl会话。

会话过程如下

1240

简而言之就是:

第一步:客户端和服务器双方共同商量使用什么加密算法,怎么加密等等。 第二步:客户端发送证书给服务器,目的为了使服务器相信他。 第三步:服务器相信了,就生成对称密钥,将请求页面发送给客户端。 最后,客户端使用服务器发送的密钥加密后,将请求回应给服务器。

在这个过程中由于服务器要验证客户端身份的真假,因此,这里需引入了第三方权威颁发机构,即CA,可以给客户端发证书。而服务器相信CA的,因此,客户端拥有CA的证书,从而客户端就能访问服务端。

接下来,我们就来实现私有CA证书的认证。

准备工作:两台主机,centos7做CA证书,centos6做web服务器

步骤一、CA证书的制作(centos7)

1、查看是否安装了openssl软件

# rpm -qa openssl

2、生成自签证书

【在/etc/pki/CA目录下完成】

(1)创建证书索引数据库和指定第一个证书颁发序列号

1240

1240

(2)生成私钥

1240

补充:从私钥中提取公钥(公钥是从私钥提取出来的)

openssl genrsa  -in /etc/pki/CA/private/cakey.pem  -pubout

(3)生成自签证书【编辑/etc/pki/tls/openssl.cnf】

1240

补充:私有CA的配置文件/etc/pki/tls/openssl.conf,内容有:

这里之介绍我们需要的内容:

[ CA_default ]

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                  # 证书的序列号,默认是从01开始

crlnumber      = $dir/crlnumber        #证书吊销列表的工作号

crl            = $dir/crl.pem                  # 证书吊销列表的文件

#证书吊销列表保存着曾经发出的证书,但是并未过期,而是由于某些原因不能使用了(安全机制)

private_key    = $dir/private/cakey.pem      # 私钥文件

因此我们需要在/etc/pki/CA/目录下创建私钥文件,CA证书、cert、crl、newcerts目录,创建serial和index.txt文件。

由此,CA证书便创建完成。

二、为客户端颁发证书(centos6)

(1)生成一个私钥以及证书颁发请求。

1240

1240

(2)将证书颁发请求复制到CA服务器上

1240

2、签署证书

1240

3、将证书发送给客户端(centos7)

1240

三、重启web服务器

#service httpd restart

四、查看证书

1240

结束了,一个完整的CA自签证书认证已经完成了。

总结:整个创建证书的步骤:

1、创建私钥CA:

            创建一对密钥

           生成自签证书

2、客户端需要:

          创建一对密钥

         生成颁发证书请求(请求文件后缀为.crt)

         将请求发给CA

3、CA 签署该请求,生成证书,再传给客户端

本文转自 优果馥思 51CTO博客,原文链接:http://blog.51cto.com/youguofusi/1970168

转载地址:http://krmhl.baihongyu.com/

你可能感兴趣的文章
String、StringBuffer和StringBulder
查看>>
mysql 数据类型,字符集
查看>>
电力系统【第1章:电力系统概述】
查看>>
web环境搭建
查看>>
Codeigniter出现Unable to connect to your database server using the provided settings错误解决办法...
查看>>
html相对定位绝对定位
查看>>
YII 框架在 MAC OS下 连接数据库失败 提示 DB connection: SQLSTATE[HY000] [2002]
查看>>
poj 2551 Ones
查看>>
HDU 4433 locker
查看>>
PHP----------php-fpm进程数的一些相关配置
查看>>
初始Spring
查看>>
装箱与拆箱
查看>>
设计模式概要
查看>>
053(七)
查看>>
django admin 登陆快速添加验证码功能
查看>>
JS生成二维码
查看>>
免考申请
查看>>
接口和抽象类
查看>>
css 背景透明
查看>>
《深度探索C++对象模型》第一章:关于对象
查看>>