apache 从通过Http提供服务的网页通过Http调用API

tuwxkamq  于 2022-12-27  发布在  Apache
关注(0)|答案(2)|浏览(135)

我们有一个Java/Jetty服务器。此服务器上的servlet由我们的一些内部应用程序通过http调用。我被要求创建一个将使用许多此类servlet/ API的webapp /网站。然而,这是一个面向外部客户的网站,需要通过https / ssl提供服务。servlet URL看起来像http://internalServer:9999?parameters。现在我的webapp已经准备好了,并且已经部署在了Debian上的Apache上。一切都很好,但是一旦我启用了https/ssl,后端调用就无法通过。在chrome上,我得到“混合内容。页面是在https上加载的,但是通过http请求资源..."。在Safari上,我得到-由于访问控制检查,无法加载资源。
我理解这些错误的原因,但我想知道解决方法。我完全控制Apache服务器和网站代码。我对内部Jetty服务器的控制非常有限,对servelt代码没有控制。(不想弄乱现有的应用程序)。有什么我可以做的只是Apache配置?我可以用它作为Jetty(http)服务器的反向代理吗?谢谢你的帮助。

c3frrgcw

c3frrgcw1#

“混合内容。页面已在https上加载,但正在通过http请求资源...”
该错误消息意味着您的HTML包含通过http://...请求的资源。
您需要修复请求资源(或引用资源)的HTML(以及javascript和css中的任何引用),以便也使用https://....

z31licg0

z31licg02#

如果您尝试从https站点调用http服务,将出现Mixed content错误。
您可以在example.org.conf中使用apache2代理设置来避免该错误。您可以在文件夹/apache2/sites-enabled中找到它
添加一些代码:

<VirtualHost *:443>
   ...
   ProxyPass /service1 http://internalServer:9999
   ProxyPassReverse /service1 http://internalServer:9999
</VirtuaHost>

从你的https网站你必须获取网址

https://example.org/service1`

以到达服务。
通过这种方式,您可以从https站点调用服务http。

相关问题