无法在 Cisco ASA 9.12 上使用 HTTPS 管理“API”

网络工程 思科 思科 接口
2021-07-17 04:50:33

将 Cisco ASA 升级到代码版本 9.12(1)3 后,我无法访问我们用于许多自动化工具的 HTTPS 管理界面。

在先前代码(9.8 或 9.10)中起作用的示例 curl:

curl -k -u mah_user https://10.10.10.1/admin/exec/show+version

现在,我们收到的是 400 Bad Request 错误,而不是该命令的输出。

发生了什么变化?

1个回答

从 ASA 代码 9.12 开始,您必须向user-agentASA 管理接口提供包含 HTTP 请求标头。

ASA 代码版本 9.12 发行说明 中,它指定了以下内容:

允许非基于浏览器的 HTTPS 客户端访问 ASA

您可以允许非基于浏览器的 HTTPS 客户端访问 ASA 上的 HTTPS 服务。默认情况下,允许使用 ASDM、CSM 和 REST API。

新的/修改的命令:http server basic-auth-client

他们在此输出中没有明确说明的是,ASA 管理“API”以前不是访问 ASA 的受支持方式。它旨在供 ASDM 或他们自己的 REST API 包装器使用。

为了向“我们其他人”开放它并使其支持行为(他们需要这样做,因为在 Firepower 硬件上运行的 ASA 代码上没有 ASA REST API java 小程序),他们添加了一些新的限制。

您可以执行以下任一操作:

  1. 添加user-agent具有您在其中指定的值的标头http server basic-auth-client <my-user-agent-goes-here>

    • 示例配置: http server basic-auth-client mah_user_agent
    • 示例卷曲: curl -k -u mah_user -A mah_user_agent https://10.10.10.1/admin/exec/show+version
  2. 使用预先存在/支持的user-agent标头之一:

    • 示例卷曲: curl -k -u mah_user -A ASDM https://10.10.10.1/admin/exec/show+version

其中任何一个都适合您,但我更喜欢第二个,因为它不需要更改 ASA 上的配置即可运行。

还值得注意的是,在我的测试中,您还可以发送user-agent: ASDM包含所有先前版本的 ASA 代码标头,他们只是不关心您发送或设置的该值的内容。