首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geoserver与HTTPS

Geoserver与HTTPS
EN

Stack Overflow用户
提问于 2020-03-09 09:33:21
回答 3查看 7.9K关注 0票数 0

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

我已经在网上看过了,似乎有很多关于移动Geoserver到HTTPS的信息,但并不是所有的信息都与我的安装联系在一起。一些例子讨论了server.xml文件(我的安装没有)和更新apache文件server.xml(我也没有),所以我很难获得特定版本Geoserver的说明。docs声明它正在上运行。有人有关于如何配置https的文档或链接吗?

进步!!所以我的安装是用Jetty。我已经使用有效的证书正确地设置了密钥存储库。我更新了start.ini文件,以反映我试图运行geoserver的密钥库和密码but...when的位置:

代码语言:javascript
复制
ERROR : No module found to provide ssl for https{enabled}

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

代码语言:javascript
复制
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专家,所以我不想随便复制别人的配置设置。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-10 08:13:38

这是一个简单的案例,可以找到一个码头教程,并且遵循它,GeoServer并不关心https

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

票数 2
EN

Stack Overflow用户

发布于 2020-04-20 22:38:24

您提到的两条警告消息都来自GeoServer存储库中文件中的位rot。您发现ssl.mod文件丢失了,并手动添加它解决了这个问题。

第二个错误java.lang.IllegalStateException: No constructor class来自Jetty文件的混合。GeoServer 2.16repo中的jettyhttps.xml文件来自jetty9.4,jettyssl.xml来自jetty9.2。在这些版本之间的某个时候,构造函数<Configure id="Server" class="org.eclipse.jetty.server.Server">的位置从jetty移动到jetty。它在xml中没有被正确更新,所以有一组不匹配的GeoServer文件。

我将jetty-https.xml文件从9.2复制到与Geoserver附带的jetty-ssl.xml的9.2版本相匹配,从而解决了这个问题。您可以使用与Geoserver正在运行的文件匹配的当前jetty文件,但要确保复制所有这些文件: ssl.mod、jetty-https.xml、jetty-ssl.xml和jetty context.xml。

票数 2
EN

Stack Overflow用户

发布于 2020-03-10 17:38:48

好吧,只是想和大家分享一下,万一有帮助的话。这是有点简短,但希望将是有用的。请注意:我的安装程序使用了合法的GoDaddy DNS/SSL证书,这可能是一些人的限制器,并迫使您使用自签名证书。

感谢伊恩·图顿,他创造了“啊哈”时刻:)

我使用了以下youtube视频来安装Tomcat和Geoserver:https://www.youtube.com/watch?v=RyCFKGm4NSw

首先,我曾经运行过Tomcat (我使用了端口8081,因为8080已经在使用了)。请注意,当我安装到端口8081时,它没有更新server.xml文件,所以我不得不手动打开并更改

代码语言:javascript
复制
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

代码语言:javascript
复制
<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

然后重启Tomcat。

我使用了从GoDaddy下载的合法PFX文件。我已经有了一个SSL证书/DNS设置,所以这只是一个请求PFX文件的问题。

其次,我使用从AdoptOpenJDK安装的JAVA导入了PFX。我转到命令行,导航到AdoptOpenJDK bin文件夹(其中有一个keytool.exe应用程序)。然后运行以下命令:

代码语言:javascript
复制
keytool -importkeystore -srckeystore c:/temp/mygodaddycert.pfx -srcstoretype pkcs12 -destkeystore c:/temp/mycert.jks -deststoretype JKS  

当提示输入源密码时,我是从GoDaddy获得的,然后我为JKS文件使用了自己的、完全不同的密码。然后我将我的JKS文件复制到./conf/certs文件夹(我创建了certs文件夹)

第三,我将它添加到我的/conf/server.xml文件中:

代码语言:javascript
复制
   <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150"
        SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS"
        keystoreFile="conf/certs/mycert.jks" 
        keystorePass="<your_jks_password_when_registering_with_keytool>"
    />

我重启Tomcat..。

然后,我使用来自GoDaddy的DNS连接到实例:https://myXYZ.de:8443/和voila,运行在SSL上,没有证书错误。自从安装了Geoserver之后。我可以把geoserver加到末尾:https://myXYZ.de:8443/geoserver和瞧2号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60597777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档