ADC

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.

Flux de trafic d'action de transfert SSL

  1. Un client initie l’établissement de connexion SSL et envoie le message d’accueil du client à l’appliance ADC.
  2. L’appliance évalue la stratégie configurée en utilisant les paramètres du message d’accueil du client.
  3. Si la stratégie est fausse, le trafic déchiffré est transféré au service HTTP, puis au serveur principal.
  4. Si la stratégie est vraie, le trafic est transféré vers le serveur virtuel de transfert défini dans l’action.
  5. Le serveur virtuel de transfert termine la liaison avec le client.
  6. 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 :

  1. Ajoutez un serveur virtuel d’équilibrage de charge de type SSL (par exemple, VMain). Le trafic client est reçu sur ce serveur virtuel.
  2. Ajoutez des certificats de serveur et d’autorité de certification et liez-les au serveur virtuel SSL.
  3. Ajoutez un service SSL avec le port 443.
  4. Liez ce service au serveur virtuel SSL.
  5. 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).
  6. Ajoutez un service et liez-le à ce serveur virtuel.
  7. Ajoutez une action de transfert SSL en spécifiant le serveur virtuel SSL fwd-vserver dans le paramètre « forward ».
  8. 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.
  9. Liez cette stratégie au serveur virtuel SSL sur CLIENTHELLO_REQ.
  10. 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-->