SSL证书管理概述

SSL(Secure Sockets Layer)证书,现多指TLS(Transport Layer Security)证书,是用于加密网站和访问者之间通信的数字证书。它保证数据传输的安全性与完整性,同时还验证网站身份,防止中间人攻击。

本文主要以Certbot来申请免费的证书

SSL证书的主要功能:

  • 加密数据传输:确保客户端和服务器通信内容被加密,防止被窃听。
  • 身份验证:向用户证明网站身份,提升网站信任度。
  • 数据完整性:确保传输数据不被篡改。

SSL证书的常见类型

  1. 自签名证书(Self-signed Certificate)
    适合测试环境,免费但不被浏览器信任,访问时会弹出安全警告。

  2. 受信任第三方颁发的证书
    由受认可的证书颁发机构(CA)签发,包括:

    • DV(域名验证)证书:验证域名所有权,是最常见的免费/收费证书。
    • OV(组织验证)证书:验证组织身份。
    • EV(扩展验证)证书:验证更严格,地址栏会显示绿色安全标识。
  3. 免费证书
    例如Let’s Encrypt提供的免费证书,自动化申请和续期。


SSL证书的管理主要流程

  1. 生成私钥与证书签名请求(CSR)
    申请证书前,需要生成私钥和CSR文件,CSR用于向CA申请证书。

  2. 向证书颁发机构申请证书
    将CSR提交给CA,完成验证后获取正式证书文件。

  3. 安装证书
    在服务器(如Nginx)配置并安装证书。

  4. 证书续期与撤销
    证书有有效期,到期前需要续期。发现秘密泄漏时应撤销证书。


在 Nginx 中配置 SSL 证书示例

假设你已经获得以下文件:

  • 服务器私钥文件:server.key
  • 服务器证书文件:server.crt
  • (可选)中间证书链文件:ca_bundle.crt

在 Nginx 配置文件(如 /etc/nginx/sites-available/default 或对应的虚拟主机配置)中添加:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/server.crt;
    ssl_certificate_key /path/to/server.key;
    ssl_trusted_certificate /path/to/ca_bundle.crt;  # 可选

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

然后,测试配置并重启Nginx:

sudo nginx -t
sudo systemctl reload nginx

常见 SSL 证书管理工具

  • OpenSSL :生成私钥和CSR,测试证书。
  • Certbot :Let’s Encrypt 官方客户端,实现证书自动申请和续期。
  • CFSSL :CloudFlare 提供的证书管理工具,适合大规模部署。
作者:admin  创建时间:2025-10-20 15:24
最后编辑:admin  更新时间:2025-10-20 16:47