全部证书有多种文件编码格式,主要包括:算法
CER编码(规范编码格式):是BER(基本编码格式)的一个变种,比BER规定得更严格
DER编码(卓越编码格式):是BER(基本编码格式)的一个变种, 比BER规定得更严格安全
*CER的不一样在于,DER使用定长模式,而CER使用变长模式。服务器
全部证书都符合公钥基础设施(PKI)制定的ITU-T X509国际标准,PKCS(公钥加密标准)由RSA实验室和其余安全系统开发商为促进公钥密码的发展而制定的一系列标准网络
好比:socket
PKCS#7(密码消息语法标准----文件后缀名:.p7b、.p7c、.spc)工具
PKCS#10(证书请求语法标准----文件后缀名:.p十、.csr)编码
PKCS#12(我的信息交换语法标准----文件后缀名:.p十二、.pfx)等加密
在得到数字证书后,能够将其保存在电脑中,也能够保存在USB Key等相应的设备中。spa
简单的证书机构签发的流程:开放源代码
数字证书的应用环境是在https安全协议中,使用流程远比上述加密交互流程复杂
可是相关操做封装在传输层,对于应用层透明,在https安全协议中使用非对称加密算法交换密钥,使用对称加密算法对数据进行加密/解密操做,提升加密/解密效率
数字证书管理工具:KeyTool和OpenSSL构建CSR(数字证书签发申请),交由CA机构签发,造成最终的数字证书
这里咱们不对KeyTool作讲解(KeyTool不含有根证书,所以KeyTool没有办法做为CA),网上资料对keytool讲解的也挺多的,咱们下面针对OpenSSL进行讲解。
在咱们搭建OPEN SSL环境前,咱们要知道HTTPS协议和SSL/TLS协议,简单的说,HTTPS就是HTTP+SSL(secure socket layer)/TLS(Transport Layer Security)协议,HTTPS协议为数字证书提供了最佳的应用环境,HTTPS协议通常在服务器中配置,如HTTP服务器APACHE、TOMCAT等。
SSL:位于TCP/IP中的网络传输层,做为网络通信提供安全以及数据完整性的一种安全协议
TLS:做为SSL协议的继承者,成为下一代网络安全性和数据完整性安全协议
SSL共有3个版本:1.0、2.0、3.0,TLS也有1.0、2.0、3.0,一般咱们说的SSL/TLS协议指的是SSL3.0/TLS1.0的网络传输层安全协议
SSL/TLS协议分为两层:
记录协议:建议在可靠的传输协议之上,为高层协议提供数据封装、压缩、加密等基本功能的支持
握手协议:创建在SSL记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等
协商算法 验证算法 客户端验证服务器端证书 服务器端验证客户端证书: 产生密钥
会话密钥 加密交互
OPEN SSL 环境搭建
基础原理中咱们提到了两种认证服务,单项认证服务和双向认证服务,咱们就以双向认证服务举例说明。
OpenSSL是一个开放源代码软件包,实现了SSL以及相关加密技术,是最经常使用的证书管理工具,OpenSSL功能远胜于KeyTool,可用于根证书(KeyTool不含有,所以KeyTool没有办法做为CA)、服务器证书、客户证书的管理。