1. 信息内容加密
   接收者的公钥: 用于加密
   接收者的私钥: 用于解密
    --------  验证接收者(保证数据私密性)

2. 数字签名
   发送者的私钥: 用于加密
   发送者的公钥: 用于解密
     --------  验证发送者(保证不可抵赖性、数据完整性)

3. 证书
   用于确认公钥所对应的私钥持有者的身份
   证书与公共密钥相关联
   证书内容包括:  证书的名称(含国家,省,城市,组织等信息), 公匙; 认证机构的名称, 签名; 有效时间; 证书签发的流水号等信息.

证书的概念:首先要有一个根证书,然后用根证书来签发用户证书。
对于申请证书的用户:在生成证书之前,一般会有一个私钥,然后用私钥生成证书请求(证书请求里应含有公钥信息),再利用证书服务器的根证书来签发证书。

特别的:
(1)自签名证书(一般用于顶级证书、根证书): 证书的名称和认证机构的名称相同.

(2)根证书:根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任

数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。数字证书包含证书中所标识的实体的公钥(就是说你的证书里有你的公钥),由于证书将公钥与特定的个人匹配,并且该证书的真实性由颁发机构保证(就是说可以让大家相信你的证书是真的),因此,数字证书为如何找到用户的公钥并知道它是否有效这一问题提供了解决方案。

  

openssl中有如下后缀名的文件

.key格式:私有的密钥
.crt格式:证书文件,certificate的缩写
.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写
.crl格式:证书吊销列表,Certificate Revocation List的缩写
.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式
 
常用证书协议
x509v3: IETF的证书标准
x.500:目录的标准
SCEP:  简单证书申请协议,用http来进行申请,数据有PKCS#7封装,数据其实格式也是PKCS#10的
PKCS#7:  是封装数据的标准,可以放置证书和一些请求信息
PKCS#10:  用于离线证书申请的证书申请的数据格式,注意数据包是使用PKCS#7封装这个数据
PKCS#12:  用于一个单一文件中交换公共和私有对象,就是公钥,私钥和证书,这些信息进行打包,加密放在存储目录中,CISCO放在NVRAM中,用户可以导出,以防证书服务器挂掉可以进行相应恢复。思科是.p12,微软是.pfx
 
 
 
 本文附件有一篇网上配置文档,自己并没有实际操作过,根据自己的理解做了一点文字修改,在该例子中
(1)CA中心:生成私钥my-ca.key -〉通过CA私钥来生成自签名证书my-ca.crt
 
(2)邮件服务器:即 需要申请证书的用户,在自己的计算机中生成一个证书签名请求(certificate signing request (CSR) )文件,CSR包括自己的公钥,将其上载到 CA中心,由CA中心用自己的私钥把CSR文件签名生成证书。
 
邮件服务器生成私钥station20.key-〉生成证书签名请求dovecot.csr( .csr里有邮件服务器的公钥信息)-〉上传到CA中心, 用CA证书和CA私钥为csr文件签名,生成dovecot.crt 证书。关键命令为openssl ca -in dovecot.csr -out dovecot.crt -cert my-ca.crt -keyfile my-ca.key-〉再把CA中心上的dovecot.crt证书下载回邮件服务器
 
(3)邮件客户端:不需要申请证书,只需要信任证书。
把CA中心的my-ca.crt权威CA导入到信任列表中