彻底搞清楚SSL/TLS

34次阅读

共计 1290 个字符,预计需要花费 4 分钟才能阅读完成。

1 TLS/SSL 的前世今生
SSL(Secure Sockets Layer) 最初由 Netscape 定义, 分别有 SSLv2 和 SSLv3 两个版本 (SSLv1 未曾对外发布); 在 SSLv3 之后 SSL 重命名为 TLS。
TLS(Transport Layer Security) 版本从 TLSv1.0 开始, TLSv1.0 是在 SSLv3 的基础上升级而来。

协议
时间
建议
说明

SSLv1
/
/
实际从未公开发布。

SSLv2
1995
弃用
IETF 已于 2011 年弃用。

SSLv3
1996
弃用
IETF 已于 2015 年弃用。

TLSv1.0
1999
兼容

TLSv1.1
2006
兼容

TLSv1.2
2008
主推
目前最新可用版本

TLSv1.3
/
/
2016 开始草案制定

多年以来已弃用的 SSL 协议也暴露出了一些高危漏洞 (例如: POODLE, DROWN); 因此建议服务器禁用 SSL3.0 及 SSL2.0, 只启用 TLS 协议。
2 证书如何工作
SSL/TLS 使用证书来实现对数据的加密传输以及身份认证。
3 TLS 握手过程

3.1 导致握手失败的一些原因

两边协议版本不兼容
两边加密算法无匹配项

更多关于如何优雅处理 HTTPS 中的证书问题可参考这里。
附录
[1] RFC6176 – Prohibiting Secure Sockets Layer (SSL) Version 2.0https://tools.ietf.org/html/r…[2] RFC7568 – Deprecating Secure Sockets Layer Version 3.0https://tools.ietf.org/html/r…[3] RFC2246 – The TLS Protocol Version 1.0https://tools.ietf.org/html/r…[4] RFC4346 – The Transport Layer Security (TLS) Protocol Version 1.1https://tools.ietf.org/html/r…[5] RFC5246 – The Transport Layer Security (TLS) Protocol Version 1.2https://tools.ietf.org/html/r…[6] RFC2246 – The TLS Protocol Version 1.0https://tools.ietf.org/html/r…[7] RFC4346 – The Transport Layer Security (TLS) Protocol Version 1.1https://tools.ietf.org/html/r…[8] RFC5246 – The Transport Layer Security (TLS) Protocol Version 1.2https://tools.ietf.org/html/r…[9] The Transport Layer Security (TLS) Protocol Version 1.3https://tools.ietf.org/html/d…[10] SSL and TLS Protocolshttps://wiki.openssl.org/inde…

正文完
 0