配置并使用代理服务器

您可以使用 AppScan Presence 代理服务器来记录流量、将其另存为 DAST.CONFIG 文件,以及将其导入以运行 ASoC 扫描。您可以选择加密此文件,如下文中的一个小节中所述。

配置代理服务器连接

关于此任务

对设置文件进行任何更改后,您必须重新启动服务器。
注: Settings.json 是一个 JSON 文件,因此,某些字符需要进行转义(例如,双引号 ( ) 和反斜杠 (\) 必须分别转义为 \”\\)。
重要: 请勿更改此文件中的 internalConfiguration 设置。

过程

对于代理服务器的安全 (SSL) 连接:配置您自己的 PEM 或 PKCS12 证书:
  • PEM:
    • PEM 证书需要两个文件(完整路径)
    • 请注意根据需要对文件路径和密码中的字符进行转义,例如密码 abc!”123 将变为 abc!\”123 (“ 符号被转义)
  • PKCS12:
    1. 在命令行中,运行:
      .\Java\jre\bin\java.exe -jar .\DastProxy.jar -sc "C:\Path\to\certificate.pfx"
    2. 出现提示时,请输入证书的密码,然后按 Enter
一个通过使用 openssl 创建 PEM 证书的示例:
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt 
一个通过使用 openssl 将 PEM 证书转换为 PKCS12 证书的示例:
openssl pkcs12 -export -out certificate.pfx -inkey key.pem -in server.crt
一个通过使用 Java 的 keygen 工具将 JKS 证书转换为 PKCS12 证书的示例:
keytool -importkeystore -srckeystore certificate.jks -srcstoretype JKS -destkeystore certificate.p12 -deststoretype PKCS12

使用代理服务器

代理服务器启动后,您可以启动新的记录代理实例,以记录您的应用程序的流量。

过程

  1. 如果站点是安全的 (HTTPS),则可以通过执行以下操作来避免 SSL 警告:
    1. 使用 REST API 可下载由 AppScan 代理服务器使用的自签名根证书认证中心作为 PEM 文件。
    2. 在用于“浏览”的浏览器上安装证书,或在需要的位置(取决于流量的来源)进行安装。
    有关更多详细信息,请参阅下文 配置根证书
  2. 要启动代理,请使用 REST API 请求:StartProxy,并定义记录端口(想要将流量发送到的端口)。
    注: 如果代理服务器没有站点的直接访问权,还可通过该 REST API 定义上游(已链接)代理。
    注: 如果需要定义多个链接代理,或定义代理异常,请使用在安装文件夹中找到的链接代理规则文件 (proxy.chain)。
    注: 如果未加密流量(请参阅以下小节),则可以使用以下方法为单个记录加密流量文件 (DAST.CONFIG):
    Query param Example:
    /StartProxy/<recordingPort>?encrypted=true
  3. 通过已定义的记录端口发送流量。
  4. 完成后,发送 REST API 请求:StopProxy(请注意,StopProxy/0 是禁止的)。
  5. 通过发送 REST API 请求来下载记录的流量文件:流量
    流量文件的扩展名为 .dast.config
    注: 下载流量文件时,系统将从代理服务器删除流量数据。

    您可以借助 ASoC REST API 使用 DAST.CONFIG 文件来更新现有作业的“浏览”数据。您可以

加密 DAST.CONFIG 文件

您可以使用代理服务器 REST API 上载 DAST.CONFIG 文件以供加密,然后下载加密后的文件。
  • 要上载文件以供加密,请使用:EncryptDastConfig
  • 要下载加密后的文件,请使用:DownloadEncryptedDastConfig
请参阅代理服务器 API 命令以获取详细信息。

加密流量

缺省情况下,不会加密流量 (DAST.CONFIG) 文件。要配置服务器以加密所有流量,请将在安装文件夹中发现的 Settings.json 文件中的 "encryptDastConfig" 密钥更改为 true

设置代理非活动超时

如果在使用后未使用关闭命令关闭代理实例,则该代理实例将保持打开状态并在端口上侦听。如果记录代理实例在预定义的时间内处于闲置状态,则会自动关闭。

记录代理实例的缺省不活动超时为 60 分钟。您可以在保存在安装文件夹中的 Settings.json 文件中更改此值。

链接代理

如果在使用后未使用关闭命令关闭代理实例,则该代理实例将保持打开状态并在端口上侦听。如果记录代理实例在预定义的时间内处于闲置状态,则会自动关闭。

记录代理实例的缺省不活动超时为 60 分钟。您可以在保存在安装文件夹中的 Settings.json 文件中更改此值。

配置根证书

如果您的应用程序使用 SSL (HTTPS),则代理必须作为中间人来记录交流。为此,代理服务器必须具有根证书,它可以使用该证书对其与应用程序的通信进行签名。
缺省情况下,代理服务器会生成一个唯一的根证书,无需用户介入。但是,在浏览应用程序时,您将收到 SSL 警告。可以执行以下某个操作:
  1. 在您的机器上安装代理服务器生成的证书:
    1. 使用 REST API 可下载由 AppScan Proxy Server 使用的自签署根认证中心作为 PEM 文件。
    2. 在用于“浏览”的浏览器上安装证书,或在需要的位置(取决于流量的来源)进行安装。
  2. 将您的根证书导入代理服务器。受支持的证书格式为 PKCS12(.P12、.PFX)、JKS:
    1. 打开命令行窗口,导航到 AppScan Presence 计算机上的代理服务器安装文件夹。缺省位置:
      <AppScanPresenceInstallFolder>\Automation
    2. 运行以下命令:
      ..\Java\jre\bin\java -jar DastProxy.jar -irc [path to certificate file] -ircp [password]
    注意:要查看所使用的全部命令,请运行:
     ..\Java\jre\bin\java -jar DastProxy.jar
重要: 由于证书将保存在代理服务器上,因此建议您使用专用测试证书。
注: 此工作流程的演示脚本 ProxyServerDemoScript.py 可在缺省位置中获取;
<AppScanPresenceInstallFolder>\Automation