ADC
感谢您提供反馈

这篇文章已经过机器翻译.放弃

示例 10:基于策略的 RSA 加密

RSA 算法使用 PKEY_ENCRYPT_PEM () 函数对 HTTP 预定义和用户定义的标头或正文内容进行加密。该函数仅接受 RSA 公钥(不接受私钥),并且加密数据的长度不能超过公钥的长度。当加密的数据短于密钥长度时,该算法使用 RSA_PKCS1 填充方法。

在示例场景中,该函数可在重写操作中与 B64ENCODE () 函数一起使用,将 HTTP 标头值替换为由 RSA 公钥加密的值。然后,接收者使用 RSA 私钥对正在加密的数据进行解密。

您可以使用重写策略来实现该功能。为此,必须完成以下任务:

  1. 添加 RSA 公钥作为策略表达式。
  2. 创建重写操作。
  3. 创建重写策略。
  4. 将重写策略绑定为全局策略。
  5. 验证 RSA 加密

使用 NetScaler 命令接口进行基于策略的 RSA 加密

完成以下任务,使用 NetScaler 命令界面配置基于策略的 RSA 加密。

要使用 NetScaler 命令界面将 RSA 公钥添加为策略表达式,请执行以下操作:

add policy expression pubkey '"-----BEGIN RSA PUBLIC KEY-----MIGJAoGBAKl5vgQEj73Kxp+9yn1v5gPR1pnc4oLM2a0kaWwBOsB6rzCIy6znwnvwCY1xRvQhRlJSAyJbloL7wZFIJ2FOR8Cz+8ZQWXU2syG+udi4EnWqLgFYowF9zK+o79az597eNPAjsHZ/C2oL/+6qY5a/f1z8bQPrHC4GpFfAEJhh/+NnAgMBAAE=-----END RSA PUBLIC KEY-----"'

要使用 NetScaler 命令接口添加重写操作以加密 HTTP 标头请求,请执行以下操作:

add rewrite action encrypt_act insert_http_header encrypted_data

HTTP.REQ.HEADER("data_to_encrypt").PKEY_ENCRYPT_PEM(pubkey).B64ENCODE

要使用 NetScaler 命令界面添加重写策略,请执行以下操作:

add rewrite policy encrypt_pol 'HTTP.REQ.HEADER("data_to_encrypt").EXISTS' encrypt_act

要使用 NetScaler 命令接口全局绑定重写策略,请执行以下操作:

bind rewrite global encrypt_pol 10 -type RES_DEFAULT

要使用 NetScaler 命令界面验证 RSA 加密,请执行以下操作:

>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 命令表明每次执行的加密数据都不同。这是因为填充会在要加密的数据的开头插入随机字节,从而导致每次加密的数据都不同。

>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 加密

GUI 使您能够完成以下任务:

要使用 GUI 将 RSA 公钥添加为策略表达式,请执行以下操作

  1. 登录 NetScaler 设备并导航到配置 > AppExpert > 高级表达式
  2. 在详细信息窗格中,单击“添加”将 RSA 公钥定义为高级策略表达式。
  3. 在“创建表达式”页面中,设置以下参数:
    1. 表达式名称。高级表达式的名称。
    2. 表达式。使用表达式编辑器将 RSA 公钥定义为高级表达式。
    3. 评论。表达式的简短描述。
  4. 单击 Create(创建)。

要使用 GUI 添加重写操作以加密 HTTP 标头请求,请执行以下操作:

  1. 登录 NetScaler 设备并导航到配置 > AppExpert > 重写 > 操作
  2. 在详细信息窗格中,单击“添加”以添加重写操作。
  3. 在“创建重写操作”屏幕中,设置以下参数:
    1. 名称。重写操作的名称。
    2. 类型。选择操作类型作为 INSERT_HTTP_HEADER。
    3. 使用操作类型插入标题。输入需要重写的 HTTP 标头的名称。
    4. 表达式。与操作相关的高级策略表达式的名称。
    5. 评论。重写操作的简要描述。
  4. 单击 Create(创建)。

要使用 GUI 添加重写高级策略,请执行以下操作

  1. 登录 NetScaler 设备并导航到配置 > AppExpert > 重写 > 策略
  2. 在“重写策略”页面中,单击“添加”以添加重写策略。
  3. 在“创建重写策略”页面中,设置以下参数:
    1. 名称。重写策略的名称。
    2. 操作。如果请求或响应与此重写策略相匹配,则要执行的重写操作的名称。
    3. 记录操作。请求与此策略匹配时使用的消息日志操作的名称。
    4. 未定义结果操作。策略评估结果未定义时要执行的操作。
    5. 表达式。触发操作的高级策略表达式的名称。
    6. 评论。重写操作的简要描述。
  4. 单击 Create(创建)。

要使用 GUI 全局绑定重写策略,请执行以下操作

  1. 登录 NetScaler 设备并导航到配置 > AppExpert > 重写 > 策略
  2. 在“重写策略”屏幕中,选择要绑定的重写策略,然后单击“策略管理器”。
  3. 在“重写策略管理器”页面的“绑定点”部分中,设置以下参数:
    1. 绑定点。将绑定点选择为“默认全局”。
    2. 协议。选择协议类型为 HTTP。
    3. 连接类型。将连接类型选择为请求。
    4. 单击“继续”查看“策略绑定”部分。
    5. 策略绑定 部分中,选择重写策略并设置绑定参数。
  4. 单击绑定
本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
示例 10:基于策略的 RSA 加密