本篇主要介绍了基于OpenSSL的PKI的PKI数字证书系统实现,利用OpenSSL建立一个CA中心的详细解决方案和建立的具体步骤. 1.PKI数字证书系统设计 PKI数字证书系统主要包括证书颁发机构CA.注册机构RA和公共查询数据库三个部分,基本框架如下: 2.OpenSSL对传输文件公钥加密私钥解密 OpenSSL RSA私钥生成: $ openssl genrsa -out private.pem 2048 OpenSSL RSA公钥生成: $ openssl rsa -in ./priv…
功能应用: 消息摘要,给文件或数据生成消息摘要,消息摘要只能校验数据的完整性,如SHA.MD5 数据加密和解密:对数据进行加密解密,OpenSSL实现了所有加密算法 数字证书:可以通过命令行或代码生成证书,证书内包含了公钥 数字签名:利用加密算法对数据进行签名,验证数据来源可靠性,如RSA 随机数字:产生可靠的随机数 加密算法: HASH算法:SHA.MD5等,不可逆加密,用于校验数据的完整性. 对称加密算法:DES.3DES.DESX等,双方使用相同的密钥进行加密解密. 非对称算法:RSA.E…
1.1    数字证书 1.1.1   概念理解 一种文件的名称,例如一个机构或人的签名,能够证明这个机构或人的真实性.简而言之数字证书是一种网络上证明持有者身份的文件,同时还包括有公钥.证书是由国际上公认的证书机构颁发,这些机构是公认的信任机构.要想请这些机构颁发证书是要给钱的.客户端程序通过维护一个“根授信机构列表”,当收到一个证书时,查看这个证书是否在该列表中,如果是则这个证书是可信的,否则就不信任. 1.1.2   证书的信任 作为一个HTTPS的站点需要与一个证书绑定,无论如何,证书总…
https加密通信原理: 公钥私钥成对,公钥公之于众,私钥只有自己知道. 用公钥加密的信息只能由与之相对应的私钥解密. 甲给乙发送数据时,甲先用乙的公钥加密这段数据,再用自己的私钥对这段数据的特征数据(数字指纹,通过HASH函数生成)进行RSA运算形成签名.乙接到数据后,先用自己的私钥解密数据,并用甲的公钥对甲的签名进行验证(解出数字指纹,与接收到的数据的数字指纹做对比).如此,可保证发信人无法抵赖曾发过该信息,也确保报文在传递过程中不会被篡改. CA证书: CA证书是指CA颁发给用户的证书,其…
SSL/TLS 介绍见文章 SSL/TLS原理详解(http://seanlook.com/2015/01/07/tls-ssl). 如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自建CA和颁发SSL证书  .(http://seanlook.com/2015/01/18/openssl-self-sign-ca) 首先简单区分一下HTTPS.SSL.OpenSSL三者的关系: SSL是在客户端和服务器之间建立一条SSL安全通道的安全协议,而OpenSSL是TLS/SSL协议的…
关于SSL/TLS介绍见文章 SSL/TLS原理详解.关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 . openssl是一个开源程序的套件.这个套件有三个部分组成:一是libcryto,这是一个具有通用功能的加密库,里面实现了众多的加密库:二是libssl,这个是实现ssl机制的,它是用于实现TLS/SSL的功能:三是openssl,是个多功能命令行工具,它可以实现加密解密,甚至还可以当CA来用,可以让你创建证书.吊销证书. 默认情况ubuntu和C…
对于PKI及证书服务的这些概念,相信初学者会有许多迷惑的地方,那是因为其中的某些关键概念没有理解清楚,我力争以通俗易懂的方式给初学者一些启示,也给以后自己忘了的时候一个参考:) ! 参考资料:http://technet.microsoft.com 基本概念: 1.接收证书的实体是证书的“使用者”:证书的颁发者和签). 解读:证书是使用者用来证明自己身份的凭证,实际上是证书的拥有者,这个证书在使用者申请后由CA颁发.证书拥有者可以是人员(例如用户).设备(例如计算机)和计算机上运行的服务(例如…
原文链接: http://www.cangfengzhe.com/wangluoanquan/37.html 这篇文章主要介绍PKI公钥体系中非常核心元素——数字证书的编程解析.在SSL,SET等安全协议通信时,数字证书用于通信双方进行身份认证,并且依靠数字证书和非对称加密算法加密传输数据,或者根据数字证书协商通信双方的共享密钥.所以,用户想要开发自己的应用,实现身份认证,必须对数字证书进行解析.根据解析结果,符合一定条件的终端用户,才可以接入. 1.证书格式介绍 现有的数字证书大都采用了X.5…
建立 CA 建立 CA 目录结构 按照 OpenSSL 的默认配置建立 CA ,需要在文件系统中建立相应的目录结构.相关的配置内容一般位于 /usr/ssl/openssl.cnf 内,详情可参见 config (1) .在终端中使用如下命令建立目录结构: $ mkdir -p ./demoCA/{private,newcerts}$ touch ./demoCA/index.txt$ echo 01 > ./demoCA/serial 产生的目录结构如下: .`-- demoCA/    |-…
一)keytool生成私钥文件(.key)和签名请求文件(.csr),openssl签发数字证书      J2SDK在目录%JAVA_HOME%/bin提供了密钥库管理工具Keytool,用于管理密钥.证书和证书链.Keytool工具的命令在JavaSE6中已经改变,不过以前的命令仍然支持.Keytool也可以用来管理对称加密算法中的密钥. 最简单的命令是生成一个自签名的证书,并把它放到指定的keystore文件中: keytool -genkey -alias tomcat -keyalg…