SSLインターセプション
-
SSL プロファイル
-
SSL ポリシー
-
CA 証明書ストア
-
SSL エラーの自動学習とキャッシュ
SSLインターセプション証明書ストア
CLI を使用して CA 証明書バンドルをアプライアンスにインポートして適用する
import ssl certBundle <name> <src>
apply ssl certBundle <name>show ssl certBundle
http://www.example.com/cert_bundle_fileなどです。
import ssl certbundle swg-certbundle http://www.example.com/cert_bundle
apply ssl certBundle swg-certbundleshow ssl certbundle
Name : swg-certbundle(Inuse)
URL : http://www.example.com/cert_bundle
Done
GUI を使用して CA 証明書バンドルをアプライアンスにインポートして適用する
-
セキュリティ > SSL 転送プロキシ > はじめに > 証明書バンドルに移動します。
-
次のいずれかを行います:
-
リストから証明書バンドルを選択します。
-
証明書バンドルを追加するには、「+」をクリックし、名前とソース URL を指定します。[OK] をクリックします。
-
-
[OK] をクリックします。
CLI を使用して CA 証明書バンドルをアプライアンスから削除する
remove certBundle <cert bundle name>
remove certBundle mytest-cacert
CLI を使用してアプライアンスから CA 証明書バンドルをエクスポートする
export certBundle <cert bundle name> <Path to export>
http://www.example.com/cert_bundle_fileなどです。
export certBundle mytest-cacert http://192.0.2.20/
Mozilla CA 証明書ストアから CA 証明書バンドルをインポート、適用、検証する
> import certbundle mozilla_public_ca https://curl.haxx.se/ca/cacert.pem
Done
> apply certbundle mozilla_public_ca
Done
> sh certbundle | grep mozilla
Name : mozilla_public_ca (Inuse)
制限事項
-
証明書バンドルは、クラスタ設定またはパーティション化されたアプライアンスではサポートされません。
-
TLSv1.3 プロトコルは、SSL フォワードプロキシではサポートされていません。
SSL 代行受信のための SSL ポリシーインフラストラクチャ
patset)、またはドメインから派生した URL カテゴリと照合できます。
CLIを使用してSSLポリシーを作成します
add ssl policy <name> -rule <expression> -action <string>
detected_domain 属性を使用してドメイン名をチェックする式を持つポリシーの例です。
add ssl policy pol1 -rule client.ssl.detected_domain.contains("XYZBANK") -action BYPASS
add ssl policy pol2 -rule client.ssl.client.ssl.detected_domain.url_categorize(0,0).category.eq ("YouTube") -action RESET
add ssl policy pol3 –rule true –action INTERCEPT
add ssl policy pol4 -rule client.ssl.origin_server_cert.subject.contains("yahoo") –action INTERCEPT
add ssl policy pol_url_category -rule client.ssl.origin_server_cert.subject.URL_CATEGORIZE(0,0).CATEGORY.eq("Shopping/Retail") -action INTERCEPT
add ssl policy pol_url_category -rule client.ssl.origin_server_cert.subject.url_categorize(0,0).category.eq("Uncategorized") -action INTERCEPT
add ssl policy pol_url_set -rule client.ssl.client_hello.SNI.URLSET_MATCHES_ANY("top100") -action INTERCEPT
add ssl policy pol_url_set -rule client.ssl.origin_server_cert.subject.URLSET_MATCHES_ANY("top100") -action INTERCEPT
GUI を使用したプロキシサーバーへの SSL ポリシーの作成
-
[Traffic Management]>[SSL]>[Policies] に移動します。
-
\[SSL ポリシー\] タブで、\[追加\] をクリックし、次のパラメータを指定します。
-
ポリシー名
-
ポリシーアクション:代行受信、バイパス、またはリセットから選択します。
-
式
-
-
[作成] をクリックします。
CLI を使用して SSL ポリシーをプロキシサーバーにバインドする
bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type INTERCEPT_REQ
bind ssl vserver <name> -policyName pol1 -priority 10 -type INTERCEPT_REQ
GUI を使用して SSL ポリシーをプロキシサーバーにバインドする
-
\[セキュリティ\] > \[SSL フォワードプロキシ\] > \[プロキシ仮想サーバー\] に移動します。
-
仮想サーバを選択し、\[Edit\] をクリックします。
-
\[**詳細設定\]**で、\[SSL ポリシー\] をクリックします。
-
\[SSL ポリシー\] ボックスの内側をクリックします。
-
「ポリシーの選択」で、バインドするポリシーを選択します。
-
「 タイプ」で「 INTERCEPT_REQ」を選択します。
-
\[バインド\] をクリックし、\[OK\] をクリックします。
CLI を使用して SSL ポリシーをプロキシサーバーにバインド解除します
unbind ssl vserver <vServerName> -policyName <string> -type INTERCEPT_REQ
SSL ポリシーで使用される SSL 式
| 式 | 説明 |
|---|---|
CLIENT.SSL.CLIENT_HELLO.SNI.* |
SNI 拡張を文字列形式で返します。文字列を評価して、指定したテキストが含まれているかどうかを確認します。例:client.ssl.client_hello.sni.contains(“xyz.com”) |
CLIENT.SSL.ORIGIN_SERVER_CERT.* |
バックエンドサーバーから受け取った証明書を、文字列形式で返します。文字列を評価して、指定したテキストが含まれているかどうかを確認します。例:client.ssl.origin_server_cert.subject.contains(“xyz.com”) |
CLIENT.SSL.DETECTED_DOMAIN.* |
SNI 拡張またはオリジンサーバー証明書からドメインを文字列形式で返します。文字列を評価して、指定したテキストが含まれているかどうかを確認します。例:client.ssl.detected_domain.contains(“xyz.com”) |
SSL エラーの自動学習中
-
クライアント証明書の要求がサーバーから受信されます。
-
ハンドシェイクの一部として、次のアラートのいずれかが受信されます。
-
BAD_CERTIFICATE
-
UNSUPPORTED_CERTIFICATE
-
CERTIFICATE_REVOKED
-
CERTIFICATE_EXPIRED
-
CERTIFICATE_UNKNOWN
-
UNKNOWN_CA(クライアントがピン接続を使用している場合、サーバ証明書を受信すると、この警告メッセージを送信します)。
-
HANDSHAKE_FAILURE
-
GUI を使用した学習の有効化
-
Traffic Management > SSLに移動します。
-
\[設定\]で、\[ SSLの詳細設定の変更\]をクリックします。
-
「 SSLインターセプション」で、「 SSLインターセプションエラー・キャッシュ」を選択します。
-
「 SSLインターセプション最大エラーキャッシュメモリ」で、予約するメモリ(バイト単位)を指定します。

-
[OK] をクリックします。
CLI を使用した学習の有効化
set ssl parameter -ssliErrorCache ( ENABLED | DISABLED ) -ssliMaxErrorCacheMem <positive_integer>
SSL プロファイル
-
オリジンサーバー証明書のOCSPステータスを確認します。
-
オリジンサーバーが再ネゴシエーションを要求した場合、クライアントの再ネゴシエーションをトリガーします。
-
フロントエンドSSLセッションを再利用する前に、オリジンサーバー証明書を確認してください。
CLI を使用して SSL プロファイルを追加し、SSLインターセプションを有効にする
add ssl profile <name> -sslinterception ENABLED -ssliReneg ( ENABLED | DISABLED ) -ssliOCSPCheck ( ENABLED | DISABLED ) -ssliMaxSessPerServer <positive_integer>
add ssl profile swg_ssl_profile -sslinterception ENABLED
Done
sh ssl profile swg_ssl_profile
1) Name: swg_ssl_profile (Front-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
SSL Interception: ENABLED
SSL Interception OCSP Check: ENABLED
SSL Interception End to End Renegotiation: ENABLED
SSL Interception Server Cert Verification for Client Reuse: ENABLED
SSL Interception Maximum Reuse Sessions per Server: 10
Session Ticket: DISABLED Session Ticket Lifetime: 300 (secs)
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT Priority :1
Description: Predefined Cipher Alias
Done
CLI を使用して SSLインターセプション CA 証明書を SSL プロファイルにバインドする
bind ssl profile <name> -ssliCACertkey <ssli-ca-cert>
bind ssl profile swg_ssl_profile -ssliCACertkey swg_ca_cert
Done
sh ssl profile swg_ssl_profile
1) Name: swg_ssl_profile (Front-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
SSL Interception: ENABLED
SSL Interception OCSP Check: ENABLED
SSL Interception End to End Renegotiation: ENABLED
SSL Interception Server Cert Verification for Client Reuse: ENABLED
SSL Interception Maximum Reuse Sessions per Server: 10
Session Ticket: DISABLED Session Ticket Lifetime: 300 (secs)
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT Priority :1
Description: Predefined Cipher Alias
1) SSL Interception CA CertKey Name: swg_ca_cert
Done
GUI を使用して SSLインターセプションCA 証明書を SSL プロファイルにバインドする
-
\[ システム \] > \[ プロファイル \] > \[ SSL プロファイル\] に移動します。
-
[追加] をクリックします。
-
プロファイルの名前を指定します。
-
SSL セッションインターセプションを有効にします。
-
[OK] をクリックします。
-
\[**詳細設定\]**で、\[証明書キー\] をクリックします。
-
プロファイルにバインドするSSLインターセプトCA証明書キーを指定します。
-
\[選択\] をクリックし、\[バインド\] をクリックします。
-
オプションで、展開に合わせて暗号を設定します。
-
編集アイコンをクリックし、\[追加\] をクリックします。
-
1 つ以上の暗号グループを選択し、右矢印をクリックします。
-
[OK] をクリックします。
-
-
[完了] をクリックします。
GUI を使用して SSL プロファイルをプロキシサーバーにバインドする
-
\[セキュリティ\] > \[SSL フォワードプロキシ**\] > \[プロキシ仮想サーバー**\] に移動し、サーバーを追加するか、変更するサーバーを選択します。
-
\[SSL プロファイル\] で、\[編集\] アイコンをクリックします。
-
\[SSL プロファイル\] リストで、前に作成した SSL プロファイルを選択します。
-
[OK] をクリックします。
-
[完了] をクリックします。
Name: swg_ssl_profile (Front-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
SSL Interception: ENABLED
SSL Interception OCSP Check: ENABLED
SSL Interception End to End Renegotiation: ENABLED
SSL Interception Maximum Reuse Sessions per Server: 10
Session Ticket: DISABLED Session Ticket Lifetime: 300 (secs)
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT Priority :1
Description: Predefined Cipher Alias
1) SSL Interception CA CertKey Name: swg_ca_cert