1 TLS/SSL的前世今生
SSL(Secure Sockets Layer)最初由Netscape
定義, 分別有SSLv2和SSLv3兩個(gè)版本(SSLv1未曾對(duì)外發(fā)布); 在SSLv3之后SSL重命名為T(mén)LS。
TLS(Transport Layer Security)版本從TLSv1.0開(kāi)始, TLSv1.0是在SSLv3的基礎(chǔ)上升級(jí)而來(lái)。
協(xié)議 | 時(shí)間 | 建議 | 說(shuō)明 |
---|---|---|---|
SSLv1 | / | / | 實(shí)際從未公開(kāi)發(fā)布辨泳。 |
SSLv2 | 1995 | 棄用 | IETF已于2011年棄用肥荔。 |
SSLv3 | 1996 | 棄用 | IETF已于2015年棄用。 |
TLSv1.0 | 1999 | 兼容 | - |
TLSv1.1 | 2006 | 兼容 | - |
TLSv1.2 | 2008 | 主推 | 目前最新可用版本 |
TLSv1.3 | / | / | 2016開(kāi)始草案制定 |
多年以來(lái)已棄用的SSL協(xié)議也暴露出了一些高危漏洞(例如: POODLE, DROWN); 因此建議服務(wù)器禁用SSL3.0及SSL2.0, 只啟用TLS協(xié)議园蝠。
2 證書(shū)如何工作
SSL/TLS使用證書(shū)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密傳輸以及身份認(rèn)證。
3 TLS握手過(guò)程
3.1 導(dǎo)致握手失敗的一些原因
- 兩邊協(xié)議版本不兼容
- 兩邊加密算法無(wú)匹配項(xiàng)
更多關(guān)于如何優(yōu)雅處理HTTPS中的證書(shū)問(wèn)題可參考這里。
附錄
[1] RFC6176 - Prohibiting Secure Sockets Layer (SSL) Version 2.0
https://tools.ietf.org/html/rfc6176
[2] RFC7568 - Deprecating Secure Sockets Layer Version 3.0
https://tools.ietf.org/html/rfc7568
[3] RFC2246 - The TLS Protocol Version 1.0
https://tools.ietf.org/html/rfc2246
[4] RFC4346 - The Transport Layer Security (TLS) Protocol Version 1.1
https://tools.ietf.org/html/rfc4346
[5] RFC5246 - The Transport Layer Security (TLS) Protocol Version 1.2
https://tools.ietf.org/html/rfc5246
[6] RFC2246 - The TLS Protocol Version 1.0
https://tools.ietf.org/html/rfc2246
[7] RFC4346 - The Transport Layer Security (TLS) Protocol Version 1.1
https://tools.ietf.org/html/rfc4346
[8] RFC5246 - The Transport Layer Security (TLS) Protocol Version 1.2
https://tools.ietf.org/html/rfc5246
[9] The Transport Layer Security (TLS) Protocol Version 1.3
https://tools.ietf.org/html/draft-ietf-tls-tls13-13
[10] SSL and TLS Protocols
https://wiki.openssl.org/index.php/SSL_and_TLS_Protocols