概念
数字证书
数字身份(digital identity)是身份标识方式的一种,是一对“钥匙”,其中一个只有她/他本人知道(即私钥),另一个是公开的(公钥)。
把数字身份比喻成一个证件,那么数字证书就是身份认证机构盖在数字身份上的一个章或印(或者说加在数字身份上的一个签名),表示身份认证机构已认定这个人的这个数字身份并为这个人的这个数字身份背书。没有任何背书/印/加签/数字证书的数字身份是没有什么实际意义的。
SSL证书
SSL证书是数字证书的一种,因为配置在服务器上,也称为SSL服务器证书。
SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
OpenSSL
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包是目前最流行的 SSL 密码库工具。
OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。
对称加密
在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。
非对称加密
需要两个密钥,一个是公开密钥,另一个是私有密钥;公钥用作加密,私钥则用作解密。使用公钥把明文加密后所得的密文,只能用相对应的私钥才能解密并得到原本的明文,最初用来加密的公钥不能用作解密。由于加密和解密需要两个不同的密钥,故被称为非对称加密。
信息摘要算法
散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。
如MD2、MD5、MDC2、SHA(SHA1)和RIPEMD等。
CA证书
CA是Certificate Authority的缩写,也叫“证书授权中心”。
CA 也拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。
如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。
证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。目前,证书的格式和验证方法普遍遵循X.509 国际标准。
X.509证书
在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。
X.509证书包含三个文件:key,csr,crt
- key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
- csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
- crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含签署者的签名。
备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。
自签名证书和私有CA签名的证书的区别
自签名的证书无法被吊销,CA签名的证书可以被吊销。能不能吊销证书的区别在于,如果你的私钥被黑客获取,如果证书不能被吊销,则黑客可以伪装成你与用户进行通信。
如果你的规划需要创建多个证书,那么使用私有CA的方法比较合适,因为只要给所有的客户端都安装了CA的证书,那么以该证书签名过的证书,客户端都是信任的,也就是安装一次就够了.如果你直接用自签名证书,你需要给所有的客户端安装该证书才会被信任,如果你需要第二个证书,则还的挨个给所有的客户端安装证书2才会被信任。