Java 我怎么能告诉Wicket它';通过Apache通过SSL终止访问,以便在加载脚本时避免混合内容错误?

Java 我怎么能告诉Wicket它';通过Apache通过SSL终止访问,以便在加载脚本时避免混合内容错误?,java,apache,tomcat,mod-proxy,wicket-6,Java,Apache,Tomcat,Mod Proxy,Wicket 6,我的wicket应用程序正在Apache代理配置后面运行,带有SSL终止 <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName my-domain-name ProxyRequests Off ProxyPreserveHost On ProxyPass / http://localhost:49161/ ProxyPassReverse / http://localhost:49161

我的wicket应用程序正在Apache代理配置后面运行,带有SSL终止

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
  ServerName my-domain-name
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://localhost:49161/
  ProxyPassReverse / http://localhost:49161/
  SSLCertificateFile /etc/letsencrypt/live/my-domain-name/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/my-domain-name/privkey.pem

  RequestHeader set X-Forwarded-Proto https

  Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
我假设它在那里使用http,因为它认为页面是通过http服务的。这就是我在虚拟主机配置中添加X-Forwarded-Proto部分的原因,但这似乎没有起到作用

我还试图告诉tomcat,https方案是通过更新server.xml中的HTTP连接器来使用的

<Connector port="8080" protocol="HTTP/1.1" scheme="https" secure="true" SSLEnabled="false" 
               connectionTimeout="20000"
               redirectPort="8443" />

我可以在Wicket应用层做些什么来告诉它应用程序实际上是通过https而不是http提供的

谢谢大家!


Kristof.

对于WicketStuff GMap3模块,您可以提供您喜欢的方案作为构造函数参数:


否则,您可以使用
X-Forwarded-Proto
请求头来决定应用程序是否在代理之后。

您好,martin-g,谢谢您的建议。我会试试GMap3模块。。。虽然我遇到的问题超出了GMap,但我也遇到了在前端使用脚本的其他插件的问题。像X-Forwarded-Proto这样的通用解决方案会很好,但正如问题中提到的那样,这是行不通的。问题是,Apache是否正确设置了头,tomcat是否传递了头,或者Wicket是否忽略了头?
<Connector port="8080" protocol="HTTP/1.1" scheme="https" secure="true" SSLEnabled="false" 
               connectionTimeout="20000"
               redirectPort="8443" />