使用Openssl构建私有CA
2015-10-22 21:32
190 查看
使用Openssl构建私有CA
Openssl是SSL的开源实现,是一种安全机密程序,主要用于提高远程登录访问的安全性。也是目前加密算法所使用的工具之一,功能很强大。Openssl为网络通信提供安全及数据完整性的一种安全协议,包括了主要的密码算法、常用的密钥和证书封装管理功能(CA)以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用,例如我们将会使用Openssl实现私有CA,并实现证书颁发。
OpenSSL:SSL的开源实现
libcrypto:通用加密库,提供了各种加密函数
libssl:TLS/SSL协议的实现,基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库
openssl:多用途的命令行工具;能够实现私有证书颁发机构;即在公司内部实现身份的验证;
SSL:(Secure Socket Layer)安全套接字层,通过一种机制在互联网上提供密钥传输。其主要目标是保证两个应用间通信数据的保密性和可靠性,可在服务器端和用户端同时支持的一种加密算法。目前主流版本SSLV2、SSLV3
一、SSL提供以下功能:
数据的机密性:通过对称加密算法实现数据的机密性。
数据的完整性:通过单向加密算法保证数据的完整性。
身份的安全验证:提供数据发送者的身份。
二、加密类型及功能:
单向加密:提取数据特征码,实现数据完整性验证
对称加密:数据加密,实现数据私密性
公钥加密:使用对方公钥加密,实现秘钥交换;使用自己私钥加密,实现身份验证
三、SSL 会话流程
1.客户端向服务端发起SSL会话信息,将自己支持的一套加密规则发送给网站。
2.服务端从中选出一组加密算法与HASH算法与浏览器进行协商确认,并将自己的身份信息CA证书的发送给浏览器。
证书信息如图所示
3.验证证书的合法性(颁发证书的机构是否合法,证书是否完整有无篡改、证书是否在CA吊销库中、证书中包含的网站地址是否与正在访问的地址一致等);
4.如果证书不受信任,浏览器会弹出警告信息;等待操作人员确认是否继续,继续极为信任证书执行4步骤,如不信任终止会话;
5.如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码(这串密码将作为后续对称加密通讯的初始秘钥使用);
6.使用协商好的HASH算法对随机秘钥进行单向加密计算出指纹信息,并使用客户端私钥对指纹信息进行加密,使用服务端公钥信息对秘钥和加密的指纹信息加密后发送给服务端;
7.服务端使用自己的私钥将密文解开后获取秘钥,使用客户端公钥解密获得秘钥指纹信息并作对比并验证客户端身份;
8.之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密,并按照协商定期更换秘钥。
CA证书是一个加密会话建立信任的初始阶段,互联网上的知名网站的证书肯定是要想CA认证机构申请的,费用也是相当可观的。而公司内部一些建立于CA之上的通讯完成可以通过Openssl来建立私有的CA服务。四、使用Openssl建立私有CAopenssl 配置文件 /etc/pki/tls/openssl.cnf
如果你的私钥泄露了,那么证书就不能使用了,需要去CA服务器申请吊销此证书
国庆假期快乐~!
Openssl是SSL的开源实现,是一种安全机密程序,主要用于提高远程登录访问的安全性。也是目前加密算法所使用的工具之一,功能很强大。
Openssl为网络通信提供安全及数据完整性的一种安全协议,包括了主要的密码算法、常用的密钥和证书封装管理功能(CA)以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用,例如我们将会使用Openssl实现私有CA,并实现证书颁发。
OpenSSL:SSL的开源实现
libcrypto:通用加密库,提供了各种加密函数
libssl:TLS/SSL协议的实现,基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库
openssl:多用途的命令行工具;能够实现私有证书颁发机构;即在公司内部实现身份的验证;
SSL:(Secure Socket Layer)安全套接字层,通过一种机制在互联网上提供密钥传输。其主要目标是保证两个应用间通信数据的保密性和可靠性,可在服务器端和用户端同时支持的一种加密算法。目前主流版本SSLV2、SSLV3
一、SSL提供以下功能:
数据的机密性:通过对称加密算法实现数据的机密性。
数据的完整性:通过单向加密算法保证数据的完整性。
身份的安全验证:提供数据发送者的身份。
二、加密类型及功能:
单向加密:提取数据特征码,实现数据完整性验证
对称加密:数据加密,实现数据私密性
公钥加密:使用对方公钥加密,实现秘钥交换;使用自己私钥加密,实现身份验证
三、SSL 会话流程
1.客户端向服务端发起SSL会话信息,将自己支持的一套加密规则发送给网站。
2.服务端从中选出一组加密算法与HASH算法与浏览器进行协商确认,并将自己的身份信息CA证书的发送给浏览器。
证书信息如图所示
3.验证证书的合法性(颁发证书的机构是否合法,证书是否完整有无篡改、证书是否在CA吊销库中、证书中包含的网站地址是否与正在访问的地址一致等);
4.如果证书不受信任,浏览器会弹出警告信息;等待操作人员确认是否继续,继续极为信任证书执行4步骤,如不信任终止会话;
5.如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码(这串密码将作为后续对称加密通讯的初始秘钥使用);
6.使用协商好的HASH算法对随机秘钥进行单向加密计算出指纹信息,并使用客户端私钥对指纹信息进行加密,使用服务端公钥信息对秘钥和加密的指纹信息加密后发送给服务端;
7.服务端使用自己的私钥将密文解开后获取秘钥,使用客户端公钥解密获得秘钥指纹信息并作对比并验证客户端身份;
8.之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密,并按照协商定期更换秘钥。
CA证书是一个加密会话建立信任的初始阶段,互联网上的知名网站的证书肯定是要想CA认证机构申请的,费用也是相当可观的。而公司内部一些建立于CA之上的通讯完成可以通过Openssl来建立私有的CA服务。四、使用Openssl建立私有CAopenssl 配置文件 /etc/pki/tls/openssl.cnf
如果你的私钥泄露了,那么证书就不能使用了,需要去CA服务器申请吊销此证书
国庆假期快乐~!
相关文章推荐
- linux----LAMP之编译安装apache
- Centos6.6安装简易桌面环境
- 研究SLAM网站和有用站点-sourcecode+测试数据
- linux编辑网口地址
- hdu1011 Starship Troopers
- hadoop伪分布式搭建
- Linux命令行删除文件恢复
- linux交叉编译器的制作
- Spark VS Hadoop
- linux date精简用法
- CentOS6.5升级Python到2.7并安装pip
- 如何写Linux下编译驱动模块的Makefile
- Centos6中安装mysql5.6
- 小白学习shell编程
- Linux用户权限管理
- 一个小白的linux学习历程(1)——第一个脚本
- Linux下修改/设置环境变量JAVA_HOME
- DNS服务部署(三)之高可用主辅架构
- 架构设计:系统间通信(8)——通信管理与RMI 上篇
- tomcat 配置SSL