概述
本文内容来自维基百科CMP词条的翻译
CMP协议是一个互联网协议,用于在PKI体系中获取符合X.509标准的数字证书。文档RFC4210对其进行了详细地描述,该协议是至今为止唯二使用CRFM(Certificate Request Message Format)格式的,另一个使用该格式编码的协议是CMC(Certificate Management over CMS),在文档RFC4211中进行描述。
CMP消息使用ASN.1进行编码,使用DER方法,通常在HTTP协议上传输。
PKI 实体
在PKI体系中,CA负责颁发数字证书,并作为服务端使用CMP协议。通过该协议获取数字证书的客户端被称为EE(end entity终端实体)。EE和CA之间可以存在0个或者多个RA(registration authorities注册机构)。
协议细节
EE可以通过CMP协议从CA获取的数字证书分为三种类型:
First certificate:新的数字证书同时携带一个新的公钥的(请求方不存在任何有效的数字证书);
Certificate renewal:新的数字证书同时仍携带之前的公钥;
Certificate rekey:新的数字证书同时携带一个新的公钥的(请求方已经存在一个有效的数字证书)
CA与EE之间数字证书交互消息包括下述四条,表格中描述了消息功能,消息流向和消息目的:
Function | Message flow direction | Purpose |
---|---|---|
Certificate Request | PKI client->PKI server | Request a certificate |
Certificate Response | PKI server->PKI client | Deliver a certificate |
Certificate Confirmation | PKI client->PKI server | Confirm the reception of a certificate |
Confirmation Acknowledgement | PKI server->PKI client | Acknowledge the Certificate Confirmation message |
传输
可以有多种传输方式携带CMP消息
压缩在Http消息内
TCP或者其他可靠的传输连接
通过文件协议,例如FTP或者SCP
通过E-mail,使用MIME编码标准
参考
- RFC 6712 Internet X.509 Public Key Infrastructure – HTTP Transfer for the Certificate Management Protocol (CMP)
- EJBCA - The J2EE Certificate Authority
- CMP for OpenSSL, Sourceforge Project page