Configurer l’action SSL pour transférer le trafic client
Lors de l’analyse du message d’accueil du client, une appliance Citrix ADC peut transférer le trafic client à l’aide d’une action de transfert SSL associée à une stratégie SSL. La stratégie est liée au serveur virtuel au point de liaison de la demande de bonjour du client. Certains cas d’utilisation où le transfert peut être utilisé sont abordés dans les sections suivantes. Pour plus d’informations sur la configuration d’une action de transfert SSL si un chiffrement n’est pas pris en charge sur une appliance Citrix ADC, voir Configurer l’action SSL pour transférer le trafic client si un chiffrement n’est pas pris en charge sur ADC.
L’illustration suivante explique le flux de trafic. Le serveur virtuel de transfert est du type SSL_TCP dans cette illustration.
- Un client initie l’établissement de connexion SSL et envoie le message d’accueil du client à l’appliance ADC.
- L’appliance évalue la stratégie configurée en utilisant les paramètres du message d’accueil du client.
- Si la stratégie est fausse, le trafic déchiffré est transféré au service HTTP, puis au serveur principal.
- Si la stratégie est vraie, le trafic est transféré vers le serveur virtuel de transfert défini dans l’action.
- Le serveur virtuel de transfert termine la liaison avec le client.
- Tout le trafic répondant à la règle de stratégie est transféré au service principal via le service lié au serveur virtuel de transfert.
Configurer une action SSL pour transférer le trafic client si l’appliance ne possède pas de certificat spécifique au domaine (SNI)
Remarque : Cette fonctionnalité est disponible dans la version 12.1 build 49.x et versions ultérieures.
Dans le message d’accueil du client, vous pouvez recevoir une demande concernant un domaine pour lequel le certificat n’est pas disponible sur l’appliance. Dans ce cas, vous pouvez configurer une action SSL pour transférer le trafic client vers un autre serveur virtuel. Dans l’exemple suivant, nous avons configuré un serveur virtuel SSL en tant que serveur virtuel de transfert. Ce paramètre garantit que toutes les connexions qui échouent en raison d’un certificat SNI manquant sur le serveur virtuel d’origine sont réussies sur le serveur virtuel de transfert.
Procédez comme suit :
- Ajoutez un serveur virtuel d’équilibrage de charge de type SSL (par exemple, VMain). Le trafic client est reçu sur ce serveur virtuel.
- Ajoutez des certificats de serveur et d’autorité de certification et liez-les au serveur virtuel SSL.
- Ajoutez un service SSL avec le port 443.
- Liez ce service au serveur virtuel SSL.
- Ajoutez un autre serveur virtuel d’équilibrage de charge de type SSL/SSL_TCP/TCP/SSL_BRIDGE vers lequel transférer le trafic. (Par exemple,
fwd-vserver
). - Ajoutez un service et liez-le à ce serveur virtuel.
- Ajoutez une action de transfert SSL en spécifiant le serveur virtuel SSL
fwd-vserver
dans le paramètre « forward ». - Ajoutez une stratégie SSL (par exemple
pol-ssl-sni
) spécifiant l’action précédente si un nom de domaine spécifique (SNI) est reçu dans le message d’accueil du client. - Liez cette stratégie au serveur virtuel SSL sur CLIENTHELLO_REQ.
- Enregistrez la configuration.
Configuration à l’aide de l’interface de ligne de commande
Configuration du serveur virtuel SSL vers lequel transférer le trafic :
add lb vserver fwd-vserver SSL 198.51.100.20 443
add ssl certkey sv -cert complete/server/server_rsa_2048.pem -key complete/server/server_rsa_2048.ky
add ssl certkey cacert -cert SHA256-RSA-PEM_512.pem -key SHA256-RSA-PEM_512.ky
bind ssl vserver fwd-vserver -certkeyName sv
bind ssl vserver fwd-vserver -certkeyName cacert -CA
add service ssl-service2 198.51.100.18 SSL 443
bind lb vserver fwd-vserver ssl-service2
<!--NeedCopy-->
Configuration du serveur virtuel SSL qui reçoit initialement le trafic client :
add service ssl-service 198.51.100.5 SSL 443
add lb vserver vMain SSL 198.51.100.25 443
bind ssl vserver vMain -certkeyName sv
bind lb vserver vMain ssl-service
set ssl vserver vMain -sni ENABLED
add ssl certKey snicert2 -cert /nsconfig/ssl/complete/SNI/server/serverabc.pem -key /nsconfig/ssl/complete/SNI/server/serverabc.ky
add ssl certKey snicert -cert /nsconfig/ssl/complete/SNI/server/serverabcnetscaler.pem -key /nsconfig/ssl/complete/SNI/server/serverabcnetscaler.ky
bind ssl vserver vMain -certkeyName snicert -sniCert
bind ssl vserver vMain -certkeyName snicert2 -sniCert
<!--NeedCopy-->
Configuration des stratégies pour le serveur virtuel SSL VMain :
add ssl action act_ssl_fwd -forward fwd-vserver
add ssl policy pol-ssl-sni -rule client.ssl.client_hello.sni.contains("xyz") -action act_ssl_fwd
bind ssl vserver vMain -policyName pol-ssl-sni -type CLIENTHELLO_REQ -priority 1
<!--NeedCopy-->
sh ssl vserver vMain
Advanced SSL configuration for VServer vMain:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLfwd-vserver 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
SSLfwd-vserver: 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
2) CertKey Name: snicert2 Server Certificate for SNI
3) CertKey Name: snicert Server Certificate for SNI
Data policy
1) Policy Name: pol-ssl-sni Priority: 1
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
sh ssl policy pol-ssl-sni
Name: pol-ssl-sni
Rule: client.ssl.client_hello.sni.contains("xyz")
Action: act_ssl_fwd
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 act_ssl_fwd
1) Name: act_ssl_fwd
Type: Data Insertion
Forward to: fwd-vserver
Hits: 0
Undef Hits: 0
Action Reference Count: 1
Done
<!--NeedCopy-->
sh ssl vserver fwd-vserver
Advanced SSL configuration for VServer fwd-vserver:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLfwd-vserver 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
SSLfwd-vserver: 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
Done
<!--NeedCopy-->
Configurez une action SSL pour transférer le trafic client en fonction du protocole d’application dans l’extension ALPN du message d’accueil du client
Remarque : Cette fonctionnalité est prise en charge dans les versions 13.0 build 61.x et ultérieures.
Une appliance Citrix ADC peut identifier les protocoles entrant dans l’extension ALPN du message d’accueil du client lors de l’analyse du message à des fins d’évaluation des stratégies. La règle permettant d’identifier le protocole dans l’extension ALPN du message bonjour du client est client.ssl.client_hello.alpn.has_nextprotocol<protocol_name>
. Associez une action SSL de type « transfert » à la stratégie de transfert des paquets vers le serveur virtuel de transfert. Le serveur virtuel de transfert peut être du type SSL, SSL_TCP, SSL_BRIDGE ou TCP.
Pour négocier le protocole d’application dans l’extension ALPN pour les connexions gérées par le serveur virtuel SSL_TCP, un paramètre alpnProtocol
est ajouté aux profils SSL frontaux. Les valeurs prises en charge pour le paramètre sont HTTP1.1, HTTP2 ou NONE (valeur par défaut). Seul le protocole spécifié dans le profil SSL est négocié, si le même protocole est reçu dans l’extension ALPN du message Hello client. La longueur maximale prise en charge de l’extension ALPN pour l’évaluation des stratégies est de 4 096 octets.
Exemple de configuration pour transférer toutes les demandes contenant le protocole HTTP2 dans l’extension ALPN vers un serveur virtuel SSL_TCP
Le serveur virtuel SSL_TCP vers lequel le trafic est transmis. fwd-vserver-1
Configuration du serveur virtuel SSL vers lequel transférer le trafic :
add lb vserver fwd-vserver-1 SSL_TCP 198.51.100.20 443
add ssl certkey sv -cert complete/server/server_rsa_2048.pem -key complete/server/server_rsa_2048.ky
add ssl certkey rootCA -cert SHA256-RSA-PEM_512.pem -key SHA256-RSA-PEM_512.ky
bind ssl vserver fwd-vserver-1 -certkeyName sv
bind ssl vserver fwd-vserver-1 -certkeyName rootCA -CA
add service ssl-tcp-service 198.51.100.14 SSL_TCP 443
bind lb vserver fwd-vserver-1 ssl-tcp-service
<!--NeedCopy-->
Configuration du serveur virtuel SSL qui reçoit initialement le trafic client :
add service ssl-service 198.51.100.5 SSL 443
add lb vserver vMain-alpn SSL 198.51.100.25 443
bind ssl vserver vMain-alpn -certkeyName sv
bind lb vserver vMain-alpn ssl-service
<!--NeedCopy-->
Configuration de la stratégie pour le serveur virtuel SSL VMain-ALPN :
add ssl action forward-action-alpn -forward fwd-vserver-1
add ssl policy pol-ssl-alpn -rule "client.ssl.client_hello.alpn.has_nextprotocol("h2")" -action forward-action-alpn
bind ssl vserver VMain-alpn -policyName pol-ssl-alpn -priority 2 -type CLIENTHELLO_REQ
<!--NeedCopy-->
sh ssl vserver vMain-alpn
Advanced SSL configuration for VServer vMain-alpn:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher 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
HSTS Preload: NO
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: pol-ssl-alpn Priority: 2
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
sh ssl policy pol-ssl-alpn
Name: pol-ssl-alpn
Rule: client.ssl.client_hello.alpn.has_nextprotocol("h2")
Action: forward-action-alpn
UndefAction: Use Global
Hits: 0
Undef Hits: 0
Policy is bound to following entities
1) Bound to: CLIENTHELLO_REQ VSERVER VMain-alpn
Priority: 2
Done
<!--NeedCopy-->
sh ssl action forward-action-alpn
1) Name: forward-action-alpn
Type: Data Insertion
Forward to: fwd-vserver-1
Hits: 0
Undef Hits: 0
Action Reference Count: 1
Done
<!--NeedCopy-->
sh ssl vserver fwd-vserver-1
Advanced SSL configuration for VServer fwd-vserver-1:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher 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
HSTS Preload: NO
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
2) CertKey Name: rootCA CA Certificate OCSPCheck: Optional CA_Name Sent
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
Dans cet article
- Configurer une action SSL pour transférer le trafic client si l’appliance ne possède pas de certificat spécifique au domaine (SNI)
- Configuration à l’aide de l’interface de ligne de commande
- Configurez une action SSL pour transférer le trafic client en fonction du protocole d’application dans l’extension ALPN du message d’accueil du client