Concept
ssl
概述
Let’s Encrypt提供免费SSL证书通过git和letsencrypt-auto工具生成,需配置Nginx/Apache并设置自动续期,注意域名管理和端口配置限制。
什么是 SSL
SSL(Secure Sockets Layer)是用于在互联网通信中建立加密链接的协议,现已被 TLS(Transport Layer Security)取代。其核心功能是通过加密、身份验证和数据完整性校验,确保客户端与服务器间的数据传输安全。
核心概念
- 加密算法
- 对称加密(AES):用于加密传输数据(速度快)。
- 非对称加密(RSA/ECDHE):用于密钥交换和身份验证(安全性高)。
- 证书(X.509)
- 由 CA(证书颁发机构)签发,包含公钥、域名、有效期等信息。
- 验证服务器身份,防止中间人攻击。
- 握手流程
- 客户端与服务器协商加密套件 → 服务器发送证书 → 客户端验证证书链 → 建立加密通道。
- 协议版本
- TLS 1.2/1.3(SSL 3.0 已淘汰)。
典型应用场景
- HTTPS 网站
- 强制加密网页流量(如银行、电商)。
- 配合 Let’s Encrypt 免费证书实现快速部署。
- API 通信
- 保护 RESTful API 数据传输(如 OAuth 2.0)。
- 客户端-服务器安全连接
- MQTT/CoAP 等物联网协议的加密通道。
- 自动证书管理
- 使用
certbot工具自动申请、部署和续期 Let’s Encrypt 证书。
- 使用
相关技术
- PKI(公钥基础设施)
- 证书颁发、吊销、信任链管理。
- 加密算法
- AES-256、RSA-2048、ECDHE(前向保密)。
- 证书管理工具
- Let’s Encrypt + ACME 协议(自动签发)。
- OpenSSL(手动生成/验证证书)。
- 协议优化
- TLS 1.3(减少握手次数,提升性能)。
- HSTS(HTTP Strict Transport Security)。
- 安全加固
- OCSP Stapling(减少证书状态查询延迟)。
- 防止漏洞(如 POODLE、Heartbleed)。
学习路径建议
- 基础学习
- 阅读 RFC 5246(TLS 1.2 协议规范)。
- 学习 OpenSSL 命令(如
openssl s_client分析握手)。
- 实践配置
- 配置 Nginx/Apache 的 SSL 证书(
certbot --nginx)。 - 实现自动续期脚本(
cron+certbot renew)。
- 配置 Nginx/Apache 的 SSL 证书(
- 进阶研究
- 研究加密算法原理(《应用密码学》Bruce Schneier)。
- 分析 TLS 1.3 协议改进(如 0-RTT 握手)。
- 安全攻防
- 参与 CTF 挑战(如 SSL/TLS 协议漏洞利用)。
- 跟踪 CVE 漏洞(如 CVE-2022-36803)。
注意:域名需备案(如 Let’s Encrypt 要求 DNS 解析验证),端口 443 需开放,避免使用过时协议(如 SSLv3)。