传输层安全性(TLS)及其前身安全套接字层(SSL)是使 Web 浏览器和 Web 服务器能够通过安全毗连进行通讯的技术。这意味着发送的数据由一方加密,然后传输,然后由另一方在处理之前解密。这是一个双向过程,这意味着服务器和浏览器都会在发送数据之前对全部流量进行加密。
SSL/TLS 协议的另一个重要方面是认证。这意味着在您首次实验通过安全毗连与 Web 服务器通讯时,该服务器将向您的 Web 浏览器提供一组凭据,以证实该站点是谁以及它声称的内容。在某些环境下,服务器还大概要求您的 Web 浏览器提供证书,以证实您是您所声称的人。这称为 "客户端认证",尽管在实践中,这更多用于业务对业务(B2B)生意业务而不是与个人用户。大多数启用 SSL 的 Web 服务器不会请求客户端认证。
证书
为了实施 SSL,Web 服务器必须为担当安全毗连的每个外部接口(IP 地点)预备一个相关联的证书。这个计划背后的理论是服务器应该提供某种公道的包管,证实其全部者是您认为的那个人,特别是在接收任何敏感信息之前。虽然证书的广泛表明超出了本文档的范围,但将证书视为一个 Internet 地点的 "数字护照"。它阐明了该站点与哪个构造相关联,以及关于站点全部者或管理员的一些基本联系信息。
这个证书由其全部者以暗码形式签名,因此其他人很难伪造。为了使证书在访客的浏览器中无警告地工作,它需要由受信任的第三方签名。这些被称为证书颁发机构(CA)。要得到签名的证书,您需要选择一个 CA,并按照您选择的 CA 提供的阐明来获取您的证书。有各种各样的 CA 可供选择,包罗一些免费提供证书的 CA。
Java 提供了一个相对简单的命令行工具,称为 keytool,可以轻松创建 "自签名" 证书。自签名证书只是用户生成的未经 well-known CA 签名的证书,因此不真正包管是真实的。虽然自签名证书大概对某些测试场景有效,但对于任何形式的生产利用都不符合。
运行 SSL 的一般提示