在此页面上
SSL 转发代理概述
安全套接字层 (SSL) 是一种为互联网提供加密技术的应用程序级协议。SSL,也称为 Transport Layer Security (TLS),通过隐私、身份验证、机密性和数据完整性的组合,确保客户端和服务器之间的数据安全传输。SSL 依靠证书和私钥-公钥交换对来实现此级别的安全性。
服务器身份验证通过使 Web 浏览器能够验证 Web 服务器的身份来防止欺诈性传输。保密机制确保通信是私密的。SSL 通过加密数据来强制实施机密性,以防止未经授权的用户窃听电子通信。最后,消息完整性可确保通信内容未被篡改。
SSL 转发代理是透明代理;也就是说,它在客户端和服务器之间执行SSL加密和解密,但服务器和客户端都无法检测到它的存在。SSL 转发代理可确保它具有加密和解密有效负载的密钥:
对于服务器,SSL 转发代理充当客户端 — 由于 SSL 转发代理会生成共享的预主密钥,因此它会确定要加密和解密的密钥。
对于客户端,SSL 转发代理充当服务器 — SSL 转发代理首先对原始服务器进行身份验证,并将原始服务器证书中的公钥替换为其已知的密钥。然后,它通过将证书的原始颁发者替换为自己的身份来生成新证书,并使用自己的公钥(作为代理配置文件配置的一部分提供)对此新证书进行签名。当客户端接受此类证书时,它会发送使用证书上的公钥加密的共享预主密钥。由于 SSL 转发代理将原始密钥替换为自己的密钥,因此它能够接收共享的预主密钥。解密和加密在每个方向(客户端和服务器)上进行,加密和解密的密钥是不同的。
图 1 显示了 SSL 转发代理如何在加密的有效负载上工作。配置应用程序防火墙 (AppFW) 后,SSL 转发代理充当 SSL 服务器,终止来自客户端的 SSL 会话,并建立到服务器的新 SSL 会话。设备解密,然后重新加密所有 SSL 转发代理流量。SSL 转发代理使用以下服务:
客户端上的 SSL-T-SSL 终结符。
服务器端的 SSL-I-SSL 启动器。
配置的 AppFW 服务使用解密的 SSL 会话。

本主题包含以下部分:
代理模式下支持的密码
SSL 密码包括加密密码、身份验证方法和压缩。 表 1 显示了支持的密码列表。空密码被排除在外。
支持以下 SSL 协议:
SSLv3
TLS1
SSL 密码 | 密钥交换算法数据 | 加密消息 | 完整性 |
---|---|---|---|
ECDHE-ECDSA-AES-256-GCM- SHA384 |
ECDHE/DSA 密钥交换 |
256 位 AES/GCM |
SHA384 哈希 |
ECDHE-ECDSA-AES-128-GCM-SHA256 |
ECDHE/DSA 密钥交换 |
128 位 AES/GCM |
SHA256 哈希 |
ECDHE-ECDSA-AES-256-CBC- SHA384 |
ECDHE/DSA 密钥交换 |
256 位 AES/CBC |
SHA384 哈希 |
ECDHE-ECDSA-AES-128-CBC-SHA256 |
ECDHE/DSA 密钥交换 |
128 位 AES/CBC |
SHA256 哈希 |
ECDHE-ECDSA-AES-256-CBC-SHA |
ECDHE/DSA 密钥交换 |
256 位 AES/CBC |
SHA 哈希 |
ECDHE-ECDSA-AES-128-CBC-SHA |
ECDHE/DSA 密钥交换 |
128 位 AES/CBC |
SHA 哈希 |
ECDHE-RSA-AES256-GCM-SHA384 |
ECDHE/RSA 密钥交换 |
256 位 AES/GCM |
SHA384 哈希 |
ECDHE-RSA-AES256-CBC-SHA384 |
ECDHE/RSA 密钥交换 |
256 位 AES/CBC |
SHA384 哈希 |
ECDHE-RSA-AES256-CBC-SHA |
ECDHE/RSA 密钥交换 |
256 位 AES/CBC |
SHA 哈希 |
ECDHE-RSA-AES128-GCM-SHA256 |
ECDHE/RSA 密钥交换 |
128 位 AES/GCM |
SHA256 哈希 |
ECDHE-RSA-AES128-CBC-SHA256 |
ECDHE/RSA 密钥交换 |
128 位 AES/CBC |
SHA256 哈希 |
ECDHE-RSA-AES128-CBC-SHA |
ECDHE/RSA 密钥交换 |
128 位 AES/CBC |
SHA 哈希 |
RSA-AES256-GCM-SHA384 |
ECDHE/RSA 密钥交换 |
256 位 AES/GCM |
SHA384 哈希 |
RSA-AES256-CBC-SHA256 |
ECDHE/RSA 密钥交换 |
256 位 AES/CBC |
SHA256 哈希 |
RSA-AES128-GCM-SHA256 |
ECDHE/RSA 密钥交换 |
128 位 AES/GCM |
SHA256 哈希 |
RSA-AES128-CBC-SHA256 |
ECDHE/RSA 密钥交换 |
128 位 AES/CBC |
SHA256 哈希 |
RSA-AES128-CBC-SHA |
RSA 密钥交换 |
128 位 AES/CBC |
SHA 哈希 |
RSA-AES256-CBC-SHA |
RSA 密钥交换 |
256 位 AES/CBC |
SHA 哈希 |
服务器身份验证
客户端和设备之间的隐式信任(因为客户端接受设备生成的证书)是 SSL 代理的一个重要方面。服务器身份验证不受损害非常重要;但是,实际上,自签名证书和具有异常的证书非常丰富。异常可能包括过期的证书、公用名与域名不匹配的实例等。
您可以指定 SSL 转发代理应完全忽略服务器身份验证。在这种情况下,SSL 转发代理会忽略服务器证书验证过程中遇到的错误(例如 CA 签名验证失败、自签名证书和证书过期)。
您可以指定在创建 SSL 转发代理概要文件期间,SSL 代理是否应忽略服务器身份验证错误。
如果指定 不应 忽略服务器身份验证错误,则会出现以下情况:
如果身份验证成功,则会通过替换密钥并将颁发者名称更改为在代理配置文件的根 CA 证书中配置的颁发者名称来生成新证书。
如果身份验证失败,连接将断开。
如果指定应忽略服务器身份验证错误,则会出现以下情况:
注意:我们不建议您配置此选项进行身份验证,因为配置此选项会导致网站根本不经过身份验证。但是,您可以使用此选项有效地确定 SSL 会话丢弃的根本原因。
如果证书是自签名的,则仅通过替换密钥来生成新证书。颁发者名称不会更改。这可确保客户端浏览器显示证书无效的警告。
如果证书已过期或公用名与域名不匹配,则会通过替换密钥并将颁发者名称更改为 SSL-PROXY 来生成新证书:DUMMY_CERT:由于 SRVR 身份验证失败而生成。这可确保客户端浏览器显示证书无效的警告。
根 CA
在公钥基础结构 (PKI) 层次结构中,根 CA 位于信任路径的顶部。根 CA 将服务器证书标识为受信任的证书。
受信任的 CA 列表
SSL 转发代理可确保在客户端和服务器之间安全传输数据。在建立安全连接之前,SSL 转发代理会检查证书 颁发机构 (CA) 证书,以验证服务器证书上的签名。因此,需要合理的受信任 CA 证书列表才能有效地对服务器进行身份验证。
会话恢复
SSL 会话是指在执行完全握手时创建的参数和加密密钥集。连接是会话中发生的对话或活动数据传输。完整 SSL 握手和生成主密钥的计算开销相当大。在短期会话中,SSL 握手所需的时间可能超过数据传输所需的时间。为了提高吞吐量并仍然保持适当的安全级别,SSL 会话恢复提供了一种缓存会话的机制,以便可以为客户端和服务器缓存会话信息,例如预主密钥和商定的密码。缓存的信息由会话 ID 标识。在后续连接中,双方同意使用会话 ID 来检索信息,而不是创建新的预主密钥密钥。会话恢复可缩短 握手 过程并加速 SSL 事务。
SSL 代理日志
在 SSL 代理配置文件中启用日志记录后,SSL 代理可以生成 表 2 中所示的消息。
日志类型 |
描述 |
---|---|
|
SSL 代理丢弃会话时生成的日志。 |
|
SSL 代理处理会话时生成的日志,即使遇到一些小错误也是如此。 |
|
如果非 SSL 会话最初被误认为是 SSL 会话,则生成的日志。 |
|
允许会话时生成的日志。 |
|
用于报告错误的日志。 |
|
用于报告警告的日志。 |
|
用于报告常规信息的日志。 |
所有日志都包含类似的信息;消息字段包含日志生成的原因。 表 3 中显示的三个前缀之一标识消息的来源。其他字段以描述性方式标记。
前缀 |
描述 |
---|---|
系统 |
由于与设备相关的错误或作为 SSL 代理配置文件的一部分执行的操作而生成的日志。大多数日志都属于此类别。 |
OpenSSL 错误 |
在 握手 过程中生成的日志(如果 openssl 库检测到错误)。 |
证书错误 |
如果在证书中检测到错误(X.509 相关错误),则在握手过程中生成的日志。 |