Sun Java System Web Proxy Server 4.0.8 管理指南

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

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

图 5–1 SSL 连接

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

要对 HTTPS URL 使用 SSL 隧道,客户机必须同时支持 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 协议。