SSL 組み込みアクションとユーザー定義アクション
-
DOCLIENTAUTH-クライアント証明書認証を実行します。(TLS1.3ではサポートされていません)
-
NOCLIENTAUTHH:クライアント証明書認証を実行しません。(TLS1.3ではサポートされていません)
-
RESET:クライアントに RST パケットを送信して接続を閉じます。
-
DROP:クライアントからのすべてのパケットをドロップします。接続は、クライアントが閉じるまで開いたままです。
-
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 ポリシー\] をクリックします。
-
\[SSL ポリシー\] セクションをクリックします。
-
\[ポリシーの選択\] で、前に作成したポリシーを選択します。
-
「 ポリシー・バインディング」で、ポリシーの優先度を指定します。
-
「 タイプ」で「 CLIENTHELLO_REQ」を選択します。
-
[バインド] をクリックします。
-
[完了] をクリックします。
クライアント認証用に 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 証明書グループ を選択し、\[バインドの表示\] をクリックします。
-
[バインド] をクリックします。
-
\[CA 証明書のバインド\] ページで、既存の証明書を選択するか、\[追加\] をクリックして新しい証明書を追加します。
-
\[選択\] をクリックし、\[バインド\] をクリックします。
-
別の証明書をバインドするには、手順 5 ~ 7 を繰り返します。
-
[閉じる] をクリックします。
-
\[SSL アクション\] で、\[追加\] をクリックします。
-
「 SSLアクションの作成」で、アクションの名前を指定します。
-
「 転送アクション仮想サーバー」で、既存の仮想サーバーを選択するか、トラフィックを転送する仮想サーバーを追加します。
-
必要に応じて、他のパラメータを設定します。
-
[作成] をクリックします。
-
\[SSL ポリシー\] で、\[追加\] をクリックします。
-
「 **SSLポリシーの作成」**で、ポリシーの名前を指定します。
-
「 アクション」で、前に作成したアクションを選択します。
-
式エディタで、評価するルールを入力します。
-
[作成] をクリックします。
-
\[ トラフィック管理 \] > \[ 負荷分散 \] > \[ 仮想サーバー\] に移動します。
-
仮想サーバーを追加または選択します。
-
\[**詳細設定\]**で、\[SSL ポリシー\] をクリックします。
-
\[SSL ポリシー\] セクションをクリックします。
-
\[ポリシーの選択\] で、前に作成したポリシーを選択します。
-
「 ポリシー・バインディング」で、ポリシーの優先度を指定します。
-
「 タイプ」で「 CLIENTHELLO_REQ」を選択します。
-
[バインド] をクリックします。
-
[完了] をクリックします。
GUI を使用して CA 証明書グループをバインド解除する
-
\[トラフィック管理\] > \[SSL\] > \[CA 証明書グループ\] に移動します。
-
証明書グループを選択し、\[バインドの表示\] をクリックします。
-
グループから削除する証明書を選択し、\[バインド解除\] をクリックします。
-
確認メッセージが表示されたら、\[**はい\] をクリックします。• • 。
-
[閉じる] をクリックします。
GUI を使用して CA 証明書グループを削除する
-
\[トラフィック管理\] > \[SSL\] > \[CA 証明書グループ\] に移動します。
-
証明書グループを選択し、\[Delete\] をクリックします。
-
確認メッセージが表示されたら、\[はい\] をクリックします。