Sun Java System Web Proxy Server 4.0.4 管理指南

通过 Proxy Server 对 SSL 进行隧道操作

在正向运行 Proxy Server(代理)且客户机通过代理请求到安全服务器的 SSL 连接时,代理将打开到安全服务器的连接,并复制双向数据,且不介入安全事务。此过程称为 SSL 隧道,如下图所示。

图 5–1 SSL 连接

图中说明从客户机通过代理服务器到安全服务器的 SSL 连接

要将 SSL 隧道与 HTTPS URL 一起使用,客户机必须支持 SSL 和 HTTPS。将 SSL 与常规 HTTP 一起使用可实现 HTTPS。不支持 HTTPS 的客户机仍然可以使用 Proxy Server 的 HTTPS 代理功能访问 HTTPS 文档。

SSL 隧道为较低层的活动,不会影响应用层 (HTTPS)。SSL 隧道与不使用代理的 SSL 一样安全。中间存在代理不会对安全性带来任何危害,也不会降低 SSL 的功能。

使用 SSL 时,数据流会被加密,这样代理将无权访问实际事务。因此,访问日志不能列出从远程服务器收到的状态码或标头长度。此过程也可防止代理或任何其他第三方对事务进行窃听。

由于代理不会看到数据,因此无法验证客户机与远程服务器之间使用的协议是否为 SSL。所以,代理也无法阻止其他协议通过。应将 SSL 连接限制为仅使用 Internet 号码分配机构 (Internet Assigned Numbers Authority, IANA) 指定的常用 SSL 端口,即端口 443(对于 HTTPS)以及 563(对于 SNEWS)。如果站点在其他某个端口上运行安全服务器,可以使用 connect://.* 资源,使显式异常允许到某主机上其他端口的连接。

SSL 隧道功能实际上一个类似于 SOCKS 的常规功能,它独立于协议,因此也可以将此功能用于其他服务。Proxy Server 可以对支持 SSL 的任何应用程序处理 SSL 隧道,而不仅仅是 HTTPS 和 SNEWS 协议。