梗概

SSL证书申请是实现HTTPS安全连接的关键步骤。整个流程包括生成CSR(证书签名请求)、向CA机构申请证书、获取证书文件并部署到服务器。本文详细说明了从申请到部署的完整流程。

SSL证书申请流程

步骤一:生成CSR(Certificate Signing Request)

在购买证书之前,必须先在服务器上生成CSR文件。CSR是向CA机构申请证书的必要文件。

CSR包含的信息

  • 公钥:最终嵌入证书中用来验证私钥加密后的数据
  • 组织信息:包括公司名称、所在地等身份信息
  • 域名信息:证书要保护的域名(FQDN)

生成命令示例

openssl req -new -newkey rsa:2048 -nodes -keyout your_domain.key -out your_domain.csr

步骤二:选择证书类型

根据需求选择合适的证书类型:

免费证书

  • Let’s Encrypt:适合个人网站和小型项目
  • 自动化续期:通过脚本实现证书自动更新

付费证书的优势

  • 增强的信任度:如EV证书会在浏览器中显示绿色地址栏和公司名称,增强用户的信任
  • 更高的验证级别:OV和EV证书需要更严格的身份验证,适用于企业网站或涉及交易和敏感数据的站点

步骤三:CA机构处理

向CA机构提交CSR文件后,机构会进行身份验证并签发证书。

返回文件

最终CA机构返回:

  • 证书原件:包含公钥和CA签名的主证书文件
  • 中间证书:建立信任链的中间CA证书

步骤四:服务器部署

重要原则

中间证书并不是客户端自己去查找的,而是服务端需要完整提供的。

Nginx配置示例

server {
    listen 443 ssl;
    server_name your_domain.com;
    
    ssl_certificate /path/to/your_domain.crt;        # 服务器证书
    ssl_certificate_key /path/to/your_domain.key;    # 私钥
    ssl_trusted_certificate /path/to/intermediate.crt; # 中间证书
    
    # 其他SSL配置...
}

证书链的重要性

  • 浏览器需要验证从网站证书到根CA机构的完整信任链
  • 缺少中间证书会导致部分浏览器无法验证证书有效性
  • 服务器必须提供完整的证书链给客户端

证书验证过程

整个验证过程遵循验证网站身份的原理:

  1. 客户端获取服务器提供的证书链
  2. 验证每个证书的数字签名
  3. 确保信任链从网站证书延伸到受信任的根CA

相关概念