使用 SSL 登录 GeoServer 的问题

Issue with GeoServer login with SSL

我在 Centos 上安装了带有 ssl 的 tomcat apache,我已经将 GeoServer 作为 webapp 部署到 tomcat 中……当我通过 tomcat 访问 GeoServer 时 https://XXXX.XXXXXXXXX.com/geoserver/web/ 并进入登录详细信息页面将被重定向到 http://localhost:8080/geoserver/j_spring_security_check,它应该用 https link

再次带我进入 GeoServer

折腾了3天,终于弄明白了。 您必须执行以下步骤才能使其正常工作:

  1. 进入apatche/webapps
  2. 里面的geoserver目录
  3. 打开web-inf里面的web.xml文件进行编辑
  4. 取消注释下面的标签并编辑值 tomcat main url as 下面:
    <context-param>
      <param-name>PROXY_BASE_URL</param-name>
      <param-value>https://XXXXX.XXXXXXXXXX.XXXX/geoserver</param-value>
      </context-param>
  1. 保存文件,一切正常。

这个问题可以通过JVM参数-DALLOW_ENV_PARAMETRIZATION=true和环境变量PROXY_BASE_URL=https://XXXXX.XXXXXXXXXX.XXXX/geoserver来解决。

在 kartoza/geoserver:2.20.1 上测试(来自 docker-compose.yml 的片段):

environment:
  - JAVA_OPTS="-DALLOW_ENV_PARAMETRIZATION=true"
  - PROXY_BASE_URL=https://XXXXX.XXXXXXXXXX.XXXX/geoserver