SSL证书管理概述
SSL(Secure Sockets Layer)证书,现多指TLS(Transport Layer Security)证书,是用于加密网站和访问者之间通信的数字证书。它保证数据传输的安全性与完整性,同时还验证网站身份,防止中间人攻击。
本文主要以Certbot来申请免费的证书
SSL证书的主要功能:
- 加密数据传输:确保客户端和服务器通信内容被加密,防止被窃听。
- 身份验证:向用户证明网站身份,提升网站信任度。
- 数据完整性:确保传输数据不被篡改。
SSL证书的常见类型
自签名证书(Self-signed Certificate)
适合测试环境,免费但不被浏览器信任,访问时会弹出安全警告。受信任第三方颁发的证书
由受认可的证书颁发机构(CA)签发,包括:- DV(域名验证)证书:验证域名所有权,是最常见的免费/收费证书。
- OV(组织验证)证书:验证组织身份。
- EV(扩展验证)证书:验证更严格,地址栏会显示绿色安全标识。
免费证书
例如Let’s Encrypt提供的免费证书,自动化申请和续期。
SSL证书的管理主要流程
生成私钥与证书签名请求(CSR)
申请证书前,需要生成私钥和CSR文件,CSR用于向CA申请证书。向证书颁发机构申请证书
将CSR提交给CA,完成验证后获取正式证书文件。安装证书
在服务器(如Nginx)配置并安装证书。证书续期与撤销
证书有有效期,到期前需要续期。发现秘密泄漏时应撤销证书。
在 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
最后编辑:admin 更新时间:2025-10-20 16:47