配置并使用代理服务器
您可以使用 AppScan Presence 代理服务器来记录流量、将其另存为 DAST.CONFIG 文件,以及将其导入以运行 ASoC 扫描。您可以选择加密此文件,如下文中的一个小节中所述。
配置代理服务器连接
关于此任务
注: Settings.json 是一个 JSON 文件,因此,某些字符需要进行转义(例如,双引号 (
“
) 和反斜杠 (\
) 必须分别转义为 \”
和 \\
)。重要: 请勿更改此文件中的
internalConfiguration
设置。过程
对于代理服务器的安全 (SSL) 连接:配置您自己的 PEM 或 PKCS12 证书:
- PEM:
- PEM 证书需要两个文件(完整路径)
- 请注意根据需要对文件路径和密码中的字符进行转义,例如密码 abc!”123 将变为 abc!\”123 (“ 符号被转义)
- PKCS12:
- 在命令行中,运行:
.\Java\jre\bin\java.exe -jar .\DastProxy.jar -sc "C:\Path\to\certificate.pfx"
- 出现提示时,请输入证书的密码,然后按 Enter。
- 在命令行中,运行:
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
使用代理服务器
代理服务器启动后,您可以启动新的记录代理实例,以记录您的应用程序的流量。
过程
-
如果站点是安全的 (HTTPS),则可以通过执行以下操作来避免 SSL 警告:
- 使用 REST API 可下载由 AppScan 代理服务器使用的自签名根证书认证中心作为 PEM 文件。
- 在用于“浏览”的浏览器上安装证书,或在需要的位置(取决于流量的来源)进行安装。
-
要启动代理,请使用 REST API 请求:
StartProxy
,并定义记录端口(想要将流量发送到的端口)。注: 如果代理服务器没有站点的直接访问权,还可通过该 REST API 定义上游(已链接)代理。注: 如果需要定义多个链接代理,或定义代理异常,请使用在安装文件夹中找到的链接代理规则文件 (proxy.chain
)。注: 如果未加密流量(请参阅以下小节),则可以使用以下方法为单个记录加密流量文件 (DAST.CONFIG):Query param Example: /StartProxy/<recordingPort>?encrypted=true
- 通过已定义的记录端口发送流量。
-
完成后,发送 REST API 请求:
StopProxy
(请注意,StopProxy/0
是禁止的)。 -
通过发送 REST API 请求来下载记录的流量文件:
流量
流量文件的扩展名为.dast.config
注: 下载流量文件时,系统将从代理服务器删除流量数据。您可以借助 ASoC REST API 使用 DAST.CONFIG 文件来更新现有作业的“浏览”数据。您可以
加密 DAST.CONFIG 文件
您可以使用代理服务器 REST API 上载 DAST.CONFIG 文件以供加密,然后下载加密后的文件。
- 要上载文件以供加密,请使用:
EncryptDastConfig
- 要下载加密后的文件,请使用:
DownloadEncryptedDastConfig
加密流量
缺省情况下,不会加密流量 (DAST.CONFIG) 文件。要配置服务器以加密所有流量,请将在安装文件夹中发现的
Settings.json
文件中的 "encryptDastConfig"
密钥更改为 true
。设置代理非活动超时
如果在使用后未使用关闭命令关闭代理实例,则该代理实例将保持打开状态并在端口上侦听。如果记录代理实例在预定义的时间内处于闲置状态,则会自动关闭。
记录代理实例的缺省不活动超时为 60 分钟。您可以在保存在安装文件夹中的 Settings.json
文件中更改此值。
链接代理
如果在使用后未使用关闭命令关闭代理实例,则该代理实例将保持打开状态并在端口上侦听。如果记录代理实例在预定义的时间内处于闲置状态,则会自动关闭。
记录代理实例的缺省不活动超时为 60 分钟。您可以在保存在安装文件夹中的 Settings.json
文件中更改此值。
配置根证书
如果您的应用程序使用 SSL (HTTPS),则代理必须作为中间人来记录交流。为此,代理服务器必须具有根证书,它可以使用该证书对其与应用程序的通信进行签名。
缺省情况下,代理服务器会生成一个唯一的根证书,无需用户介入。但是,在浏览应用程序时,您将收到 SSL 警告。可以执行以下某个操作:
- 在您的机器上安装代理服务器生成的证书:
- 使用 REST API 可下载由 AppScan Proxy Server 使用的自签署根认证中心作为 PEM 文件。
- 在用于“浏览”的浏览器上安装证书,或在需要的位置(取决于流量的来源)进行安装。
- 将您的根证书导入代理服务器。受支持的证书格式为 PKCS12(.P12、.PFX)、JKS:
- 打开命令行窗口,导航到 AppScan Presence 计算机上的代理服务器安装文件夹。缺省位置:
<AppScanPresenceInstallFolder>\Automation
- 运行以下命令:
..\Java\jre\bin\java -jar DastProxy.jar -irc [path to certificate file] -ircp [password]
..\Java\jre\bin\java -jar DastProxy.jar
- 打开命令行窗口,导航到 AppScan Presence 计算机上的代理服务器安装文件夹。缺省位置:
重要: 由于证书将保存在代理服务器上,因此建议您使用专用测试证书。
注: 此工作流程的演示脚本
ProxyServerDemoScript.py
可在缺省位置中获取;<AppScanPresenceInstallFolder>\Automation