【发布时间】:2018-02-06 22:43:33
【问题描述】:
我们需要为我们的 Zabbix 监控前端实施 SSL,这对我们的一些后端脚本造成了严重破坏(这比修复它更麻烦)。
我目前的工作理论是,我应该能够使用一些重定向魔法来:
- 通过 HTTPS 访问我们正常的 Zabbix 前端
- 通过 HTTP 访问我们的 API(这是目前的关键问题)。
最初 - 重定向很容易:
<VirtualHost *:80>
ServerName <servername>
RedirectMatch /zabbix/(.*) https://<servername>/zabbix/$1
</VirtualHost>
但这会导致我们的 API 调用仍然需要通过 HTTP 完成的各种问题(这是通过调用 API 值的脚本完成的,以驱动其他工具中的接口选择)。我实际上最终得到了 412 响应。
所以我想我可以做这样的事情:
RedirectMatch /zabbix/(!api_jsonrpc.php)(.*) https://<servername>/zabbix/$2
虽然这仍然会让我的 API 通过 HTTP 成功,但它不会将我的 zabbix 前端重定向到 HTTPS。
这让我发疯了!任何帮助,将不胜感激。
示例网址:
https://<servername>/zabbix/zabbix.php?action=dashboard.view
https://<servername>/zabbix/index.php
http://<servername>/zabbix/api_jsonrpc.php
最终 - 任何不是“api_jsonrpc.php”的东西都需要重定向到 HTTPS,而任何具有该值的东西都需要通过 HTTP。
我们使用的是 Apache 2.2,目前无法升级。
【问题讨论】:
-
我只是好奇:为什么要为 API 牺牲 https?那是什么问题?跨站点请求、自签名证书、自定义 CA、...?
-
这是通过我们内部 CA 的自签名证书。它更像是处理我们大量自动化的跨脚本处理。
标签: apache api redirect zabbix