SSL組み込みアクションとユーザー定義アクション
-
doClientAuth — クライアント証明書認証を実行します。(TLS1.3 ではサポートされていません)
-
noClientAuth — クライアント証明書認証を実行しないでください。(TLS1.3 ではサポートされていません)
-
リセット-RST パケットをクライアントに送信して接続を閉じます。
-
ドロップ:クライアントからすべてのパケットをドロップします。接続は、クライアントが閉じるまで開いたままになります。
-
noop:何も処理せずにパケットを転送します。
ポリシーに組み込まれたアクションの例
add ssl policy pol1 -rule CLIENT.SSL.CIPHER_EXPORTABLE.NOT -reqAction DOCLIENTAUTH
add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction NOOP
add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction DROP
add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction RESET
ポリシーベースのクライアント認証によるクライアント証明書の検証
CLI を使用してクライアント証明書の検証をオプションに設定する
add ssl action <name> ((-clientAuth ( DOCLIENTAUTH | NOCLIENTAUTH ) [-clientCertVerification ( Mandatory | Optional )]
add ssl action sslact -clientauth DOCLIENTAUTH -clientcertverification OPTIONAL
GUI を使用してクライアント証明書の検証をオプションに設定します
-
[Traffic Management]>[SSL]>[Policies] に移動します。
-
「 SSL アクション 」タブで、「 追加」をクリックします。
-
名前を指定し、「 クライアント証明書の検証 」リストで「 オプション」を選択します。
ユーザー定義の SSL アクション
CLI を使用してユーザー定義の SSL アクションを設定します
add SSL action <name> -clientAuth(DOCLIENTAUTH | NOCLIENTAUTH) -clientCert (ENABLED | DISABLED) certHeader <string> -clientHeader <string> -clientCertSerialNumber (ENABLED | DISABLED) -certSerialHeader <string> -clientCertSubject (ENABLED | DISABLED) -certSubjectHeader <string> -clientCertHash (ENABLED | DISABLED) -certHashHeader <string> -clientCertIssuer (ENABLED | DISABLED) -certIssuerHeader <string> -sessionID (ENABLED | DISABLED) -sessionIDheader <string> -cipher (ENABLED | DISABLED) -cipherHeader <string> -clientCertNotBefore (ENABLED | DISABLED) -certNotBeforeHeader <string> -clientCertNotAfter (ENABLED | DISABLED) -certNotAfterHeader <string> -OWASupport (ENABLED | DISABLED)show ssl action [<name>]
add ssl action Action-SSL-ClientCert -clientCert ENABLED -certHeader "X-Client-Cert"show ssl action Action-SSL-ClientCert
1) Name: Action-SSL-ClientCert
Data Insertion Action:
Cert Header: ENABLED Cert Tag: X-Client-Cert
Done
GUI を使用してユーザー定義の SSL アクションを設定する
クライアントトラフィックを別の仮想サーバーに転送するSSLアクションの設定
-
アプライアンスには証明書がありません。
-
アプライアンスは特定の暗号をサポートしていません。
-
CLIENT.SSL.CLIENT_HELLO.CIPHERS.HAS_HEXCODE
-
CLIENT.SSL.CLIENT_HELLO.CLIENT_VERSION
-
CLIENT.SSL.CLIENT_HELLO.IS_RENEGOTIATE
-
CLIENT.SSL.CLIENT_HELLO.IS_REUSE
-
CLIENT.SSL.CLIENT_HELLO.IS_SCSV
-
CLIENT.SSL.CLIENT_HELLO.IS_SESSION_TICKET
-
CLIENT.SSL.CLIENT_HELLO.LENGTH
-
CLIENT.SSL.CLIENT_HELLO.SNI
-
CLIENT.SSL.CLIENT_HELLO.ALPN.HAS_NEXTPROTOCOL (13.0ビルド61.xから)
add SSL actionコマンドにパラメータforwardが追加され、新しいバインドポイントCLIENTHELLO_REQがbind ssl vserverコマンドに追加されます。
CLI を使用した設定
add ssl action <name> -forward <virtual server name>
add ssl policy <name> -rule <expression> -action <string>
bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type <type>
add ssl action act1 -forward v2
add ssl policy pol1 -rule client.ssl.client_hello.ciphers.has_hexcode(0x002f) -action act1
bind ssl vserver v1 -policyName pol1 -priority 1 -type CLIENTHELLO_REQ
GUI を使用した設定
-
「 SSL アクション」で、「 追加」をクリックします。
-
「 SSL アクションの作成」で、アクションの名前を指定します。
-
「 転送アクション仮想サーバー」で、既存の仮想サーバーを選択するか、トラフィックを転送する新しい仮想サーバーを追加します。
-
オプションで、他のパラメータを設定します。
-
[作成] をクリックします。
-
SSL ポリシーで、「 追加」をクリックします。
-
「 SSL ポリシーの作成」で、ポリシーの名前を指定します。
-
「 アクション」で、前に作成したアクションを選択します。
-
エクスプレッションエディタで、評価するルールを入力します。
-
[作成] をクリックします。
-
仮想サーバーを追加または選択します。
-
SSL ポリシーセクションをクリックします。
-
「ポリシーの選択」で、以前に作成したポリシーを選択します。
-
「 ポリシー・バインディング」で、ポリシーの優先度を指定します。
-
「 タイプ」で「 CLIENTHELLO_REQ」を選択します。
-
[Bind] をクリックします。
-
[完了] をクリックします。
クライアント認証用に SNI に基づいて CA を選択的に選択する SSL アクション
-
CA 証明書グループを追加します。
-
証明書とキーのペアを追加します。
-
証明書とキーのペアをこのグループにバインドします。
-
SSL アクションを追加します。
-
SSL ポリシーを追加します。ポリシーにアクションを指定してください。
-
ポリシーを SSL 仮想サーバーにバインドします。バインドポイントを CLIENTHELLO_REQ として指定します。
CLI を使用した設定
add ssl caCertGroup <caCertGroupName>
add ssl certkey <certkey_name> -cert <cert> -key <key>
bind ssl caCertGroup <caCertGroupName> <certkey_name>
add ssl action <name> -caCertGrpName <string>
add ssl policy <name> -rule <expression> -action <string>
bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type CLIENTHELLO_REQ
add ssl cacertGroup ca_cert_group
add ssl certkey ca_certkey1 -cert cacert1 -key cakey1
add ssl certkey ca_certkey2 -cert cacert2 -key cakey2
add ssl certkey snicert -cert snicert -key snikey
bind ssl cacertGroup ca_cert_group ca_certkey1
bind ssl caCertGroup ca_cert_group ca_certkey2sh ssl caCertGroup ca_cert_group
CA GROUP NAME: ca_cert_group
ACTIONS REFERRING: 1
1) CertKey Name: ca_certkey1 CA Certificate CRLCheck: Optional CA_Name Sent
2) CertKey Name: ca_certkey2 CA Certificate CRLCheck: Optional CA_Name Sentadd ssl action pick_ca_group -cacertGrpName ca_cert_groupsh ssl action pick_ca_group
1) Name: pick_ca_group
Type: Data Insertion
PickCaCertGroup: ca_cert_group
Hits: 0
Undef Hits: 0
Action Reference Count: 1add ssl policy snipolicy -rule client.ssl.client_hello.sni.contains("abc") -action pick_ca_group
bind ssl vserver v_SSL -policyName snipolicy -type CLIENTHELLO_REQ -priority 10sh ssl policy snipolicy
Name: snipolicy
Rule: client.ssl.client_hello.sni.contains("abc")
Action: pick_ca_group
UndefAction: Use Global
Hits: 0
Undef Hits: 0
Policy is bound to following entities
1) Bound to: CLIENTHELLO_REQ VSERVER v_SSL
Priority: 10set ssl vserver v_SSL -clientauth ENABLED -SNIEnable ENABLED
bind ssl vserver v_SSL -certkeyName snicert -sniCertsh ssl vserver v_SSL
Advanced SSL configuration for VServer v_SSL:
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: ENABLED Client Cert Required: Mandatory
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: snicert Server Certificate for SNI
Data policy
1) Policy Name: snipolicy Priority: 10
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
GUI を使用した設定
-
トラフィック管理 > SSL > CA 証明書グループに移動します。
-
[作成] をクリックします。
-
CA 証明書グループを選択し 、「 バインディングを表示」をクリックします。
-
[Bind] をクリックします。
-
別の証明書をバインドするには、手順 5 ~ 7 を繰り返します。
-
[閉じる] をクリックします。
-
「 SSL アクション」で、「 追加」をクリックします。
-
「 SSL アクションの作成」で、アクションの名前を指定します。
-
「 転送アクション仮想サーバー」で、既存の仮想サーバーを選択するか、トラフィックを転送する仮想サーバーを追加します。
-
オプションで、他のパラメータを設定します。
-
[作成] をクリックします。
-
SSL ポリシーで、「 追加」をクリックします。
-
「 SSL ポリシーの作成」で、ポリシーの名前を指定します。
-
「 アクション」で、以前に作成したアクションを選択します。
-
エクスプレッションエディタで、評価するルールを入力します。
-
[作成] をクリックします。
-
仮想サーバーを追加または選択します。
-
SSL ポリシーセクションをクリックします。
-
「ポリシーの選択」で、以前に作成したポリシーを選択します。
-
「 ポリシー・バインディング」で、ポリシーの優先度を指定します。
-
「 タイプ」で「 CLIENTHELLO_REQ」を選択します。
-
[Bind] をクリックします。
-
[完了] をクリックします。