首页 > 解决方案 > 地理服务器和迁移到 HTTPS

问题描述

我已经成功安装了平台独立二进制版本 Geoserver ( http://geoserver.org/release/2.16.2/ )。使用它已经有一段时间了,没有真正的问题。我现在想将此版本的 Geoserver 用于 OpenLayers 网站(使用 GeoLocation),但这需要使用 HTTP 的所有组件部分都使用 HTTPS...Geoserver 是我需要迁移的最后一个服务器。

我在网上查看过,似乎有很多关于将 Geoserver 移动到 HTTPS 的信息,但它与我的安装并不完全相关。一些示例讨论 server.xml 文件(我的安装没有)和更新我没有的 apache conf 文件(/etc/apache2/sites-avaiable/smallmelo-le-ssl.conf)所以我我正在努力获取有关我特定版本的 Geoserver 的说明。文档声明它在 Jetty servlet 上运行。有没有人有关于如何配置 https 的任何文档或链接?

进步!!所以我的安装是使用 Jetty。我已经使用有效证书正确设置了密钥库。我已经更新了 start.ini 文件以反映密钥库和密码的位置,但是......当我尝试运行 geoserver 时,我得到:

ERROR : No module found to provide ssl for https{enabled}

我的码头安装的模块文件夹中没有 SSL.MOD 模块。我确实从https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.2.13.v20150730/挖出了一个模块(ssl),但我现在得到:

java.lang.IllegalStateException: No constructor class org.eclipse.jetty.server.ServerConnector([],{}) in file:/C:/Program%20Files/Geoserver/geoserver-2.16.2/etc/jetty-https.xml

我一直在努力找出如何更新此文件并添加所需内容。问题是我不是 Java 专家,所以我不想只是随机复制别人的配置设置。

标签: jettygeoserver

解决方案


这是一个找到Jetty 教程并遵循它的简单案例,GeoServer 并不关心https.

但是,我应该警告您,在 GeoServer 文档中找不到太多帮助的原因是您不应该在生产环境中运行与平台无关的二进制文件。这就是文档需要一个server.xml(tomcat 的一部分)并假设您位于旨在处理 ssl 的 Apache2 或 Nginx Web 服务器的原因。


推荐阅读