我们知道,当客户端与服务器端建立会话之前,首先是客户端发送请求,只有通过TPC/IP三次握手后,客户端与服务器端才能建立ssl会话。握手的过程简单的说也可以总结为三个步骤,第一步:客户端和服务器双方共同商量使用什么加密算法以及加密等等。 第二步:客户端发送证书给服务器,目的是为了让服务器相信他。 第三步:服务器相信了,就生成对称密钥,将请求页面发送给客户端。 最后,客户端使用服务器发送的密钥加密后,将请求回应给服务器。在这个过程中由于服务器要验证客户端身份的真假,因此,这里需引入了第三方权威颁发机构,即CA,可以给客户端发证书。服务器是相信CA的,因此,客户端拥有CA的证书,从而客户端就能访问服务端。关于CA在这里我们需要了解:

1、SSL所使用的证书可以自己生成,也可以通过一个商业性CA(如Verisign 或 Thawte)签署证书。

2、证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证。 因此,就必须至少要有三个证书:根证书,服务器证书,客户端证书。 在生成证书之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。

接下来,我们就来简述一下在linux下搭建CA认证服务器并实现私有CA证书的认证的过程

步骤:

一、CA证书的制作(centos7)

1)进入/etc/pki/tls/openssl.cnf 并了解CA证书的系统文件内容

创建

2)在Centos7上生成自签根证书

1、在/etc/pki/CA下创建数据库索引文件index.txt、序列号记录文件serial并指定颁发证书序列号

2、生成CA证书私钥,包括设置当前umask值、私钥保存路径/etc/pki/CA/private及名称cakey.pem、密码-des3加密方式及长度2048等

3、从cakey.pem私钥中提取出公钥并指定名称cacert.pem,并指定CA机构的有效期(公钥中要设置国家、省份、城市名、公司名、公司部门、服务器名称、邮件地址等)

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

3)在Centos6上搭建子CA证书

1、在/etc/pki/CA下创建数据库索引文件index.txt、序列号记录文件serial并指定颁发子CA证书序列号

2、生成CA证书私钥,包括设置当前umask值、私钥保存路径/etc/pki/CA/private及名称cakey.pem、密码-des3加密方式及长度2048等

3、从cakey.pem私钥中提取公钥并指定名称subca.csr,公钥中要设置的国家、省份、城市名、公司名、公司部门、服务器名称、邮件地址等,其中国家、省份、公司名必须与根CA一致,而服务器名称必须不一致,其他选项不要求。

4、将Centos6生成的公钥传给根CA的/etc/pki/CA路径下

5、根CA对subca.csr 文件进行签名,并设置子CA的有效期,并生成一个新的 保存在certs/subca.crt下

6、将签名完成的subca.crt子CA证书文件回传给子CA Centos6的/etc/pki/CA路径下,并改名为cacert.pem

由此,子CA证书也就创建完成。

4)为客户端(Centos5)颁发证书

1、在任意目录下生成自己客户端的私钥,私钥文件名称无要求,也可以不加密

2、用私钥rhel5.key文件生成证书请求文件rhel5.csr,文件中要设置的国家、省份、城市名、公司名、公司部门、服务器名称、邮件地址等,其中国家、省份、公司名必须与子CA一致,而服务器名称必须不一致,其他选项不要求。

3、将生成的rhel5.csr文件传给子CA(Centos6)并进行签名

4、在Centos6上对客户端(Centos5)请求文件rhel5.csr进行签名,产生的新文件保存在certs/目录下,并命名为rhel5.crt

5、将签名完成的rhel5.crt文件回传给客户端(Centos5)

由此,客户端证书也已搭建成功。

5)查看证书

1、安装根CA证书

2、安装子CA证书

3、完成安装,查看

好的,到这里就结束了,一个完整的CA自签证书认证就已经完成了。

转载于:https://blog.51cto.com/13869554/2171756

linux下搭建CA认证相关推荐

  1. Linux下搭建Apache服务器

    Linux下搭建Apache服务器(完整版) 什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权, ...

  2. Linux下搭建jenkins+svn+http+maven自动化部署

    Linux下搭建jenkins+svn+http+maven自动化部署 服务器设置: 卸载redhat的yum,安装centos的yum,配置第三方yum 1.删除redhat原有的rpm -qa | ...

  3. linux 子域dns,linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 for ...

  4. linux 下邮件服务器,Linux 下搭建Postfix邮件服务器

    Linux 下搭建Postfix邮件服务器详解: 1.首先关闭sendmail服务 service sendmail stop 2.chkconfig sendmail off(关闭开机自启动) 3. ...

  5. linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...

  6. linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件...

    linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件 使用虚拟用户收发邮件安装 九.安装Courier authentication lib ...

  7. Linux下搭建SVN服务器【亲测可用】

    Linux下搭建SVN服务器 简介 第一步:通过yum命令安装svnserve,命令如下: 第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置) 第三步:创建svn版本库 第四步:配置修 ...

  8. linux做子域dns,linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...

  9. Linux下搭建Lotus Domino集群

    Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...

最新文章

  1. 附pdf下载 | 入门深度学习和GAN的几本书
  2. 改变状态栏的背景色和文字的颜色
  3. mysql可以打开dbt么_dbt 基本试用
  4. 软件工程学习笔记《目录》
  5. m1 MBA配置python及Numpy科学计算环境
  6. 力控数据写入mysQL_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...
  7. ssh网络服务的搭建和配置
  8. Prototype使用Class
  9. 爬虫--爬取人人网案列(一)
  10. 微信的那个老外产品经理,又写了一篇《中国移动应用设计趋势》
  11. 深度学习-自然语言模型
  12. pe文件签名信息检测技术
  13. 深入浅出contenteditable富文本编辑器
  14. Android之获取外部存储空间解释
  15. How to set the Default Page in ASP.NET?
  16. 企业官网小程序搭建教程
  17. 德州仪器计算器 C语言编程,德州仪器因取消对计算器编程的支持而激怒业余爱好者...
  18. finereport 帆软学习笔记--已解决的问题
  19. 去除WPS推广程序和广告
  20. 论文重复查重会有影响吗?

热门文章

  1. linux版和锐龙版区别,华为荣耀MagicBook Pro锐龙H版、酷睿U版,怎么选?各自侧重点是什么?...
  2. Web漏洞扫描神器Nikto使用指南
  3. php是用于后端吗,后端技术_前端和PHP的有区别吗?- 中国it教程网
  4. easyui datagrid控件使用
  5. 三星SideSync下载,一个神奇的软件_我是亲民_新浪博客
  6. THUWC2018WC2018游记
  7. TRTC实时音视频 公众号 镜像问题
  8. 几千微信好友是这样来的
  9. Spring JDBC声明式事务管理
  10. Bucket Join:分桶Join