SSL/TLS(安全套接字层/传输层安全)

电子邮件和安全
在Web服务器和浏览器之间加密通信的加密协议,由HTTPS和挂锁图标表示。
← 返回词汇表

什么是SSL/TLS?

SSL(安全套接字层)和TLS(传输层安全)是保护网络通信的密码协议。TLS是SSL的现代后继者,但"SSL"仍然常用于指两者。这些协议启用HTTPS,加密浏览器和服务器之间的数据。

SSL与TLS:简史

版本年份状态
SSL 1.01994从不发布(有缺陷)
SSL 2.01995已弃用(不安全)
SSL 3.01996已弃用(POODLE漏洞)
TLS 1.01999已弃用
TLS 1.12006已弃用
TLS 1.22008当前标准
TLS 1.32018最新,推荐

现代系统应该只使用TLS 1.2或TLS 1.3。

TLS的工作原理

TLS握手

1. 客户端Hello:浏览器发送支持的TLS版本和密码套件

2. 服务器Hello:服务器选择TLS版本和密码套件

3. 证书:服务器发送其SSL证书

4. 密钥交换:安全密钥交换(因密码套件而异)

5. 已完成:加密会话建立

客户端                          服务器

|-- 客户端Hello ------------->|

|<-- 服务器Hello ---------------|

|<-- 证书 -----------------------|

|<-- 密钥交换 -------------------|

|-- 密钥交换 ----------------->|

|-- 已完成 -------------------->|

|<-- 已完成 ---------------------|

|<======= 加密会话 =============>|

TLS 1.3将其减少到单个往返,改进性能。

SSL/TLS证书

证书中的内容?

证书类型

域验证(DV):仅证明域所有权 组织验证(OV):验证组织身份 扩展验证(EV):最高验证级别

证书覆盖范围

单域:覆盖一个域(example.com) 通配符:覆盖所有子域(*.example.com) 多域(SAN):覆盖多个特定域

实施SSL/TLS

使用Let's Encrypt的免费证书

# 使用Certbot

sudo certbot --nginx -d example.com -d www.example.com

# 自动续期

sudo certbot renew --dry-run

云提供商证书

大多数云平台提供免费、自动续期的证书:

证书验证

浏览器通过以下方式验证证书:

1. 检查证书链到受信任的根CA

2. 验证证书未过期

3. 确认域匹配

4. 检查撤销状态(CRL/OCSP)

SSL/TLS最佳实践

服务器配置

使用TLS 1.2+:禁用SSL 3.0、TLS 1.0、TLS 1.1
ssl_protocols TLSv1.2 TLSv1.3;
强密码套件:优先选择现代、安全的密码
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
HSTS:强制HTTPS(见HSTS词汇条目)

证书管理

检查SSL/TLS

使用DomScan
curl "https://domscan.net/v1/health?domain=example.com"

# 返回SSL有效性、发行者、过期

使用OpenSSL
openssl s_client -connect example.com:443 -servername example.com
在线工具:SSL实验室(ssllabs.com/ssltest)提供全面分析。

常见SSL问题

混合内容:HTTPS页面加载HTTP资源(被浏览器阻止) 证书不匹配:证书与域不匹配 过期证书:证书有效期已结束 不完整链:缺少中间证书

SSL/TLS不再可选——所有网站都应使用HTTPS以保证安全和SEO优势。

将知识付诸实践

使用 DomScan 的 API 检查域名可用性、健康状态等。