例10:ポリシーベースのRSA暗号化
-
RSA 公開鍵をポリシー表現として追加します。
-
書き換えアクションを作成します。
-
書き換えポリシーを作成します。
-
リライトポリシーをグローバルとしてバインドします。
-
RSA 暗号化の検証
NetScalerコマンドインターフェイスを使用したポリシーベースのRSA暗号化
add policy expression pubkey '"-----BEGIN RSA PUBLIC KEY-----MIGJAoGBAKl5vgQEj73Kxp+9yn1v5gPR1pnc4oLM2a0kaWwBOsB6rzCIy6znwnvwCY1xRvQhRlJSAyJbloL7wZFIJ2FOR8Cz+8ZQWXU2syG+udi4EnWqLgFYowF9zK+o79az597eNPAjsHZ/C2oL/+6qY5a/f1z8bQPrHC4GpFfAEJhh/+NnAgMBAAE=-----END RSA PUBLIC KEY-----"'
add rewrite action encrypt_act insert_http_header encrypted_data
HTTP.REQ.HEADER("data_to_encrypt").PKEY_ENCRYPT_PEM(pubkey).B64ENCODE
add rewrite policy encrypt_pol 'HTTP.REQ.HEADER("data_to_encrypt").EXISTS' encrypt_act
bind rewrite global encrypt_pol 10 -type RES_DEFAULT
>curl -v -H "data_to_encrypt: Now is the time that tries men's souls" http://10.217.24.7/`
* About to connect() to 10.217.24.7 port 80 (#0)
* Trying 10.217.24.7...
* connected
* Connected to 10.217.24.7 (10.217.24.7) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3
> Host: 10.217.24.7
> Accept: \*/\*
> data_to_encrypt: Now is the time that tries men's souls
>
< HTTP/1.1 200 OK
< Date: Mon, 09 Oct 2017 05:22:37 GMT
< Server: Apache/2.2.24 (FreeBSD) mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2
< Last-Modified: Thu, 20 Feb 2014 20:29:06 GMT
< ETag: "6bd9f2-2c-4f2dc5b570880"
< Accept-Ranges: bytes
< Content-Length: 44
< Content-Type: text/html
< encrypted_data: UliegKBJqZd7JdaC49XMLEK1+eQN2rEfevypW91gKvBVlaKM9N9/C2BKuztS99SE0xQaisidzN5IgeIcpQMn+CiKYVlLzPG1RuhGaqHYzIt6C8A842da7xE4OlV5SHwScqkqZ5aVrXc3EwtUksna7jOLr40aLeXnnB/DB11pUAE=
<
* Connection #0 to host 10.217.24.7 left intact
<html><body><h1>It works!</h1></body></html>* Closing connection #0
>curl -v -H "data_to_encrypt: Now is the time that tries men's souls" http://10.217.24.7/`
< encrypted_data: DaOjtl1Pl4DlQKf58MMeL4cFwFvZwhjMqv5aUYM5Iyzk4UpwIYhpRvgTNu2lXEVc1H0tcR1EGC/ViQncLc4EbTurCWLbzjce3+fknnMmzF0lRT6ZZXWbMvsNFOxDA1SnuAgwxWXy/ooe9Wy6SYsL2oi1sr5wTG+RihDd9zP+P14=
>curl -v -H "data_to_encrypt: Now is the time that tries men's souls" http://10.217.24.7/
. . .
< encrypted_data: eej6YbGP68yHn48qFUvi+fkG+OiO8j3yYLScrRBU+TPQ8WeDVaWnDNAVLvL0ZYHHAU1W2YDRYb+8cdKHLpW36QbI6Q5FfBuWKZSI2hSyUvypTpCoAYcHXFv0ns+tRtg0EPNNj+lyGjKQWtFi6K8IXXISoDy42FblKIlaA7gEriY=
GUI によるポリシーベースの RSA 暗号化
-
NetScalerアプライアンスにサインインし、[構成]>[AppExpert]>[高度な表現]に移動します。
-
エクスプレッションの作成ページで、次のパラメータを設定します。
-
エクスプレッション名。拡張エクスプレッションの名前。
-
式。RSA 公開鍵をエクスプレッションエディタを使用して高度なエクスプレッションとして定義します。
-
-
[作成] をクリックします。
-
「 書き換えアクションの作成 」画面で、次のパラメータを設定します。
-
種類。アクションタイプを INSERT_HTTP_HEADER として選択します。
-
アクションタイプを使用してヘッダーを挿入します。書き換えが必要な HTTP ヘッダーの名前を入力します。
-
式。アクションに関連するアドバンスポリシー表現の名前。
-
[作成] をクリックします。
-
「 リライトポリシー 」ページで、「 追加 」をクリックしてリライトポリシーを追加します。
-
「 リライトポリシーの作成 」ページで、次のパラメータを設定します。
-
アクション。リクエストまたはレスポンスがこのリライトポリシーに一致した場合に実行するリライトアクションの名前。
-
ログアクション。リクエストがこのポリシーに一致する場合に使用するメッセージログアクションの名前。
-
未定義の結果のアクション。ポリシー評価の結果が未定義の場合に実行するアクション。
-
式。アクションをトリガーする高度なポリシー表現の名前。
-
[作成] をクリックします。
-
「 リライトポリシー 」画面で、バインドするリライトポリシーを選択し、「 ポリシーマネージャ」をクリックします。
-
「ポリシーマネージャーの書き換え」ページの「バインドポイント」セクションで、次のパラメータを設定します。
-
バインドポイント。バインディングポイントをデフォルトグローバルとして選択します。
-
プロトコル。プロトコルタイプを HTTP として選択します。
-
接続タイプ。接続タイプをリクエストとして選択します。
-
「 続行 」をクリックすると、「 ポリシーバインディング 」セクションが表示されます。
-
「 ポリシー・バインディング 」セクションで、リライト・ポリシーを選択し、バインド・パラメータを設定します。
-
-
[Bind] をクリックします。