如果 ADC 不支持密码,则配置 SSL 操作以转发客户端流量
在客户端 hello 消息中,如果您收到 ADC 不支持的密码,则可以配置 SSL 操作将客户端流量转发到其他虚拟服务器。如果您不希望 SSL 卸载,请将此虚拟服务器配置为 TCP 或 SSL_BRIDGE 类型。ADC 上没有 SSL 卸载,该流量会被绕过。对于 SSL 卸载,请将 SSL 虚拟服务器配置为转发虚拟服务器。
请执行以下步骤:
- 添加 SSL 类型的负载平衡虚拟服务器。在此虚拟服务器上接收客户端流量。
- 将 SSL 服务绑定到此虚拟服务器。
- 添加 TCP 类型的负载平衡虚拟服务器。注意:对于要将流量转发到的虚拟服务器,IP 地址或端口号不是必需的。
- 使用端口 443 添加一个 TCP 服务。
- 将此服务绑定到之前创建的 TCP 虚拟服务器。
- 添加 SSL 操作,在 “转发” 参数中指定 TCP 虚拟服务器。
- 如果在客户端 hello 消息中收到特定的密码套件(由其十六进制代码标识),则添加一个 SSL 策略,指定上述操作。
- 将此策略绑定到 SSL 虚拟服务器。
- 保存配置。
使用 CLI 进行配置
add service ssl-service 10.102.113.155 SSL 443
add ssl certkey sv -cert complete/server/server_rsa_2048.pem -key complete/server/server_rsa_2048.ky
add ssl certkey cacert -cert complete/CA/root_rsa_1024.pem -key complete/CA/root_rsa_1024.ky
add lb vserver v1 SSL 10.102.57.186 443
bind ssl vserver v1 -certkeyName sv
bind lb vserver v1 ssl-service
add lb vserver v2 TCP
add service tcp-service 10.102.113.150 TCP 443
bind lb vserver v2 tcp-service
add ssl action act1 -forward v2
add ssl policy pol2 -rule client.ssl.client_hello.ciphers.has_hexcode(0x002f) -action act1
bind ssl vserver v1 -policyName pol2 -type CLIENTHELLO_REQ -priority 1
<!--NeedCopy-->
sh ssl vserver v1
Advanced SSL configuration for VServer v1:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: ENABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: sv Server Certificate
Data policy
1) Policy Name: pol2 Priority: 1
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
sh ssl policy pol2
Name: pol2
Rule: client.ssl.client_hello.ciphers.has_hexcode(0x002f)
Action: act1
UndefAction: Use Global
Hits: 0
Undef Hits: 0
Policy is bound to following entities
1) Bound to: CLIENTHELLO_REQ VSERVER v1
Priority: 1
Done
<!--NeedCopy-->
sh ssl action act1
1) Name: act1
Type: Data Insertion
Forward to: v2
Hits: 0
Undef Hits: 0
Action Reference Count: 1
Done
<!--NeedCopy-->
sh ssl vserver v2
Advanced SSL configuration for VServer v2:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
OCSP Stapling: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: sv Server Certificate
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
<!--NeedCopy-->
使用 GUI 进行配置
创建 TCP 虚拟服务器:
- 导航到流量管理 > 负载平衡 > 虚拟服务器。
- 创建 TCP 虚拟服务器。
- 单击 “ 服务和服务组 ” 部分,然后添加 TCP 服务或绑定现有服务。
- 单击绑定。
- 单击继续。
创建 SSL 虚拟服务器:
- 导航到流量管理 > 负载平衡 > 虚拟服务器。
- 创建另一个 SSL 虚拟服务器。
- 单击 “ 服务和服务组 ” 部分,然后添加新的 SSL 服务或绑定现有服务。
- 单击绑定。
- 单击继续。
- 单击 “ 证书 ” 部分并绑定服务器证书。
- 单击继续。
- 在 “高级设置”中,单击 SSL 策略。
- 单击 SSL 策略 部分以添加或选择现有策略。
- 在 “ 策略绑定” 中,单击 “ 添加 ” 并指定策略的名称。
- 在“操作”中,单击“添加”。
- 为 SSL 操作指定一个名称。在 F orward Action 虚拟服务器中,选择之前创建的 TCP 虚拟服务器。
- 单击 Create(创建)。
- 在表达式中指定 CLIENT.SSL.CLIENT_HELLO.CIPHERS.HAS_HEXCODE(不支持的密码 的十六进制代码)。
- 单击 Done(完成)。
- 在策略中,配置表达式以评估不支持的密码的流量。
- 将操作绑定到策略,将策略绑定到 SSL 虚拟服务器。指定绑定点 CLIENTHELLO_REQ。
- 单击 Done(完成)。
如果 ADC 不支持密码,则配置 SSL 操作以转发客户端流量
已复制!
失败!