梗概
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机构的完整信任链
- 缺少中间证书会导致部分浏览器无法验证证书有效性
- 服务器必须提供完整的证书链给客户端
证书验证过程
整个验证过程遵循验证网站身份的原理:
- 客户端获取服务器提供的证书链
- 验证每个证书的数字签名
- 确保信任链从网站证书延伸到受信任的根CA