前面总结的获取证书方式里,使用的是先手动生成CSR文件和密钥对,然后再根据CSR文件生成自签名证书,最后进行CRL和OCSP校验。接下来就把自己在Ubuntu下用certbot申请和部署Let’s Encrypt证书的过程和步骤也总结一下。Let’s Encrypt只能申请DV证书(Domain Validated),也就是最常见的一种证书,还记得之前说到证书分类,DV,OV和EV证书的分类方式是根据验证证书的模式不同,从证书审核的严格程度来排的,审核严谨度DV证书<OV证书<EV证书。Let’s Encrypt CA只提供DV证书申请的原因,在于它自己创建的ACME协议,用来自动化管理证书的申请,更新和销毁,这和一些普通的传统的CA机构不同,一般的CA机构以上操作多多少少都要人工操作,尤其是撤销证书需要人工提交申请,人工审核,撤销过程很长。
ACME协议域名校验
ACME协议是Let’s Encrypt CA机构设计的用来自动化管理证书申请,更新和签发。在证书申请阶段,有的CA机构为了更快速,会在收到CSR文件后,生成服务器实体密钥对,但是,一般来说,服务器公钥由服务器提供就好,如果CA机构来生成服务器密钥对,那么CA机构也拥有了服务器私钥。ACME协议则不同,密钥对的生成在客户端代理上,来看看该协议下的申请和域名校验过程:
- 客户端代理首先创建一个代理账户,并生成一对密钥对,作为通信密钥对,这个通信密钥