双向 SSL 认证(也被称为“相互认证”,或“使用客户端证书的 TLS/SSL”)是指双方经过校验彼此提供的数字证书来进行认证,以便双方均可以确认对方的身份。web
-
术语浏览器
-
TLS 与 SSL安全
TLS 的前身是 SSL。其是一个用于在应用程序之间进行通讯时保障隐私的协议。除非另有说明,本文中认为 TLS 与 SSL 是等价的。服务器
证书(cert)加密
包含了提供者信息等一些额外元数据的公钥/私钥对的公钥部分。它能够被自由的提供给任何人。操作系统
私钥blog
一个私钥能够验证与其对应的用来对数据进行加密的证书和公钥。其决不公开提供。ip
证书颁发机构(CA)ssl
一个颁发数字证书的公司。对于 SSL/TLS 证书,也有少数供应商(例如 Symantec/Versign/Thawte、Comodo、GoDaddy)的证书囊括了大多数浏览器和操做系统。它们的目的是成为一个“可信的第三方”。get
证书签名请求(CSR)
用私钥生成的一个文件。一个 CSR 能够向一个 CA 发送签名请求。CA 则使用其私钥对 CSR 进行数字签名,并建立一个已签名的证书。而后浏览器能够使用 CA 提供的证书来验证新的证书是否已被 CA 批准。
X.509
用于描述证书的格式和用法的一个规范。
- SSL认证SSL实际上就是在一个web服务器与浏览器之间创建加密连接的标准安全技术。通常来讲,一个浏览器(客户端)创建一个SSL链接到一个安全的web站点,它只检查该服务器证书。该浏览器一方面依靠其自己,或者提供已经被指定为根证书的列表证书以及受信任的CAs的操做系统。单向SSL认证(服务器->客户端)客户端与服务器使用9个握手消息,以及经过优先创建加密通道来进行消息交换。 1.客户端发送ClientHello消息来提议SSL选项。 2.服务器经过响应ServerHello消息来选择SSL选项。 3.服务器发送Certificate消息,其中包括该服务器证书。 4.客户端经过ServerHelloDone消息,来判断其部分谈判. 5.客户端在其ClientKeyExchange消息之中发送会话密匙信息(加密服务器公匙) 6.客户端经过发送ChangeCipherSpec消息来激活全部发送的将来消息的谈判选项。 7。客户端经过发送Finished消息,让服务器检查新激活的选项。 8.客户端经过发送ChangeCipherSpec消息来激活全部发送将来消息的谈判选项。 9.服务器发送Finished消息,让客户端检查新激活的选项。双向SSL认证(服务器<->客户端) 客户端与服务器使用12个握手消息,以及优先创建加密通道来进行消息交换: 1.客户端发送ClientHello消息来提议SSL选项。 2.服务器经过响应ServerHello消息来选择SSL选项。 3.服务器发送Certificate消息,其中包括该服务器证书。 4.客户端经过ServerHelloDone消息,来判断其部分谈判. 5.客户端在其ClientKeyExchange消息之中发送会话密匙信息(加密服务器公匙) 6.客户端经过发送ChangeCipherSpec消息来激活全部发送的将来消息的谈判选项。 7。客户端经过发送Finished消息,让服务器检查新激活的选项。 8.客户端经过发送ChangeCipherSpec消息来激活全部发送将来消息的谈判选项。 9.服务器发送Finished消息,让客户端检查新激活的选项。