随着计算机技术的发展,信息网络技术的应用日益深入,这些应用改进了企业工作方式,提高了工作效率。而如何确保在网络中传输的身份认证、机密性、完整性、合法性、不可抵赖性等问题成为企业进一步发展和推动企业信息化应用的关键。要解决这些问题,需要用到CA认证功能。而当企业的应用仅仅在企业内部实现时,我们只需要在企业内部自建CA服务器,完成认证功能,而无需采用第三方机构提供的CA,在总体上节省成本。

使用openssl可以实现企业内部自建CA,首先我们需要安装openssl 软件包,利用openssl创建CA服务器,其具体过程如下:

一、建立CA服务器:

1、生成密钥,CA服务器自己的密钥存放位置是/etc/pki/CA/private目录下,我们将生成的私钥文件保存在该目录下,操作如下:

# cd /etc/pki/CA

# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048

2、自签证书

# openssl req -new -x509 -key /etc/pki/CA/private/cakey.perm –out /etc/pki/CA/cacert.pem -days 3655

这样在/etc/pki/CA目录下可以看到cacerts证书生成了,用来验证签名,下发的证书每个都有签名,当有客户端申请该CA服务器签发证书时,会将该CA服务器的证书信息置入为客户端提供的证书中,其中也包含该CA服务器的公钥信息,当多个其他节点相互通信时,各自证书中的CA服务器签名信息,就可以用来验证对方的身份,这样我们的CA服务器就基本建立起来了。

3、初始化工作环境

创建CA目录下index.txt和serial两个文件,index.txt是为其他客户端签署证书时记录的索引信息,serial文件是用来标记签署的证书的记录序列号信息。

# touch /etc/pki/CA/{index.txt,serial},同时需要为serial文件指定证书签署的其实数值,比如:

# echo 01 > /etc/pki/CA/serial

二、其他节点申请证书

(一)节点生成请求,假如这个节点是提供web服务的,我们将这个节点申请的证书保存在web服务的配置目录中,比如/etc/httpd/ssl目录中,步骤如下:

# cd /etc/httpd

# mkdir ssl

# cd ssl/

#  (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048);生成密钥对儿

# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr;生成证书签署请求文件

请注意这里面生成的签署请求文件是为了CA签署以后其他节点确认自己的身份信息的,所以这里面的签署步骤中主机信息要提供自己主机信息。这样证书签署请求文件就生成了,然后发送给CA服务器,由CA服务器来签署之后再发送给客户端即可,其中challenge password是指CA服务器签署时需要使用的密码,建议设置为空。

由于是在企业内使用私有CA,这个文件可以私用scp命令复制给CA服务器即可:# scp httpd.csr 192.168.0.130:/etc/pki/CA/csr

CA服务器签署的方法,使用openssl的子命令ca来签署,-in 选项指定读入的文件 -out指定输出签署后的文件,同时还可以指定这个证书的使用期限,比如:# openssl  ca -in /etc/httpd/httpd.csr  -out /etc/httpd/httpd.crt -days 1000,而如果客户端在生成签署请求文件时,输入的信息错误,那么CA服务器在签署时会有如下的报错信息,就会提示出有哪些地方与服务器的CA配置信息不符合而造成无法签署的情况出现,如图:

这种情况下,我们就需要客户端重新生成签署请求文件,填写正确后CA服务器就可以正常签署了。如果客户端请求的csr文件配置信息正确,那么CA服务器端在签署时会有如下提示:

输入y就为客户端签署了证书,再将签署后的证书文件发送给客户端,这样以后客户端与其他节点通信时,它的身份信息就相当于由CA来做了公证而被认可,如果为多个客户端都提供签名数字证书后,企业内部的通信节点就可以基于自己的CA证书体系来通信了。

转载于:https://blog.51cto.com/9164364/1534242

在企业内部使用openssl创建私有CA相关推荐

  1. openssl创建私有ca

    openssl创建私有ca 1.ssl大概内容 PKI:公钥基础设施结构 CA:证书权威机构,PKI的核心 CRL:证书吊销列表,使用证书之前需要检测证书有效性 证书存储格式常见的X509格式 包含内 ...

  2. openssl 创建私有CA

    创建私有CA: openssl的配置文件:/etc/pki/tls/openssl.cnf 1.创建所需要的文件 #touch index.txt #echo 01 > serial # 2.给 ...

  3. 加密解密技术基础及用OpenSSL创建私有CA

    1.加密解密技术基础 (1)进程通信 传输层协议有TCP,UDP,SCTP等,端口号port表示进程地址,进程向内核注册独占使用某端口. 同一主机上的进程间通信方式:进程间通信(IPC), 消息队列( ...

  4. 简述ssl协议及利用openssl创建私有CA

    我在这个链接中简单的介绍了下加密解密原理和相关算法及其实现:http://starli.blog.51cto.com/8813574/1671408 CA是什么?为什么需要CA? 先看下面的互联网安全 ...

  5. 网络通信中的加密解密及openssl和创建私有CA详解

    本文大纲: 1.为什么网络通信要进行数据加密? 2.数据加密方式有哪些?它们是如何进行加密的? 3.通信中是如何进行数据加密传输的? 4.https方式进行数据传输的具体流程 5.SSL 的实现工具O ...

  6. Openssl加密文件及创建私有CA及证书

    # cat /etc/redhat-release CentOS release 6.6 (Final) # uname -r 2.6.32-504.el6.x86_64 首先我们先演示加密文件的方式 ...

  7. openssl工具的使用以及创建私有CA

    openssl软件包在安装之后,主要会生成三段重要内容:加密库 ssl相关库文件 openssl命令行工具 下面就来介绍一下openssl命令行工具的使用: openssl和yum类似,有着许许多多的 ...

  8. linux加密解密基础、PKI及SSL、创建私有CA

    linux加密解密基础.PKI及SSL.创建私有CA 1.加密解密基础:            数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡 ...

  9. 加密和解密技术基础、PKI及创建私有CA

    一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保 ...

最新文章

  1. insightface mxnet训练horovod版
  2. Angular之RouterModule的forRoot与forChild
  3. cf1512F. Education
  4. Spring Boot面试题(2020最新版)
  5. 2009微软精英挑战赛决赛
  6. NTFS MFT元文件碎片分析
  7. Python:数据类型
  8. 在使用 Elasticsearch 时要注意什么?
  9. android序列化好处,浅谈Android序列化
  10. Django中的form模块的高级处理
  11. windows service in vs
  12. [翻译]Web开发牛人访谈:你们都在用什么?
  13. 无标度网络和小世界网络的区别
  14. Hadoop入门之命令参考
  15. python3 打开网页方法
  16. 计算机重装系统后无法重启,u盘安装系统之后重启电脑没反应怎么办
  17. BIOS调整服务器性能模式,BIOS优化性能提升明显 菜鸟必看的BIOS优化设置教程
  18. D2007从win7升级到win10下的莫名其妙问题。
  19. C语言人五英尺七英寸,“5英尺7英寸”等于多少厘米
  20. android 微信高仿,Android高仿微信聊天界面代码分享

热门文章

  1. Generator函数自执行
  2. 【源码分享】POSCMS功能如何实现短信验证码
  3. 年薪50万的Python架构师 不是梦
  4. python绝技 — 使用PyGeoIP关联IP地址和物理位置
  5. 痞子衡嵌入式:第一本Git命令教程(0)- 索引
  6. ASP.NET MVC增删改查
  7. NDK error Error 126 make: *** Deleting file
  8. google compute test Problem 1题
  9. Windows XP系统超强支持工具全面接触
  10. Vue源码分析系列四:Virtual DOM