从证书的最终使用者而言,数字证书可分成系统证书与用户证书。系统证书指CA系统自身的证书,包括CA中心的证书、业务受理点的证书及CA系统操作员的证书;用户证书从应用角度可分为个人用户证书、企业用户证书和服务器证书。一个完善的CA中心应能签发以上各类证书。
从证书的用途而言,数字证书可分成签名证书与加密证书。签名证书用来签名用户信息,为了确保信息的不可否认性;加密证书用来加密用户传送信息,来保障信息的真实性与完整性。若A要发送签名消息给B,A用私钥签名信息,B接收到消息后,用A的签名证书中的公钥对签名验证。若A要发送加密消息给B,A用B的加密证书中的公钥加密消息,B接收到消息后,用私钥解密。CA需为加密证书备份私钥,而签名证书无须备份私钥。因此,证书签发过程会因密钥是否需备份而有些不同。证书的颁发流程主要有如下四个步骤。
1.申请人提交证书请求
若证书需备份私钥,由CA产生公私钥对,证书请求中只有个人信息。若证书无需备份私钥,在用户端产生公私钥对,证书请求里除个人信息外,还有公钥信息。
2.RA对证书请求进行审核
RA审核用户资料,审核用户相关的关键资料与证书请求信息的一致性。更高级别的证书得由CA进一步的审核。
3.CA生成证书
证书的生成过程会因密钥是否需要备份而有所差异,下面分情况讨论。
①密钥需要备份。
CA中心为备份密钥,需有密钥备份公私钥对,公钥backupkey用来备份用户私钥,私钥recoverey用于恢复用户私钥。
·生成密钥恢复码。
首先产生一个随机数r,然后用backupkey对r进行加密,得到 eneryptedkey,存入数据库。
·生成用户公私钥对
首先选择公私钥对的长度(512bit或1024bit),然后用r将生成的用户私钥加密按PKCS#8打包成privatekeyp8,公钥写入证书结构中。
·生成PKCS#7证书。
根据已赋值的证书结构,生成PKCS#7格式的证书文件cetp7.spc。
·生成PKCS#12文件。
将privatekeyp8和cetp7.spc打包成PKCS#12格式的证书文件cetp12.p12,以eneryptedCert域名存入数据库。
②密钥不需备份。
·导入证书申请。
首先验证数字签名,然后把申请文件内容导入到证书结构中。
·签发证书。
根据已赋值的证书结构,生成PKCS#7证书文件certp.spc。
4.证书发布
将证书发布到LDAP服务器上。
5.下载并安装证书
下载个人证书,并安装到浏览器中。备份私钥的证书安装过程中要输入证书安装密码r。