我的公司使用托管在云中的 CMS 系统。我们希望在内部创建 DNS 别名,以便开发人员更容易记住。阅读 mod_proxy_connect 的文档我认为应该可以做类似的事情
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName test-cms.mycorp.no
AllowCONNECT
ProxyPass / https://mycorp-xpqa-lb-8qh7ip0n.cms.cloud/mycorp
ProxyPassReverse / https://mycorp-xpqa-lb-8qh7ip0n.cms.cloud/mycorp
</VirtualHost>
直到现在我还没有让这个工作,值得一提的是
- 除了公共版本之外,我无权访问 CMS 系统的证书/密钥。
这可以使用Apache吗?
如果您的开发人员无法访问您提供给他们的链接,并且在难以记住时无法创建书签,我会担心...
我也认为你可能想得太技术和 DIY 了;我会首先联系 CMS 提供商并声明您想使用自己的域来访问 CMS。他们可能可以(重新)配置他们的服务,以便它与您的首选域和关联的 TLS 证书一起使用。
然后,您需要维护的唯一配置是指向 test-cms.example.com 的 DNS CNAME 记录。到 mycorp-xpqa-lb-8qh7ip0n.cms.cloud。
现在回到你的 Apache 配置。
mod_proxy_connect仅用于正向HTTPS 代理,您正在设置反向代理并且不需要
AllowCONNECT
.您的反向代理还需要其自己的 TLS 证书,而您的代码中缺少该证书。
通常将反向代理中的不同 URL 路径映射
/
到/mycorp
会导致不兼容,不平衡的尾部斜杠也是如此。考虑一下:
这将对根、裸子域的请求重定向到正确的子目录,并确保例如来自共享目录的内容,而不是特定于公司的目录,例如
https://mycorp-xpqa-lb-8qh7ip0n.cms.cloud/common
将保持可用。CMS 一侧的任何足够高级的安全配置仍可能检测到使用了未知域名并随后拒绝访问。
HBruijn 的回答确实为我解释了一些棘手的部分,但我仍然无法解决它。但是我已经设法通过简单地添加来解决 SSL 问题
什么似乎不起作用,也参考。HBruijn 和该行发布的答案
这没用。/ 返回 http 404,这就是我得到的,但如果 /mycorp 已添加,我会期望 http 401。
但是,我将为这个问题创建一个新问题。