使用 IIS 在 HTTPS 后面运行 GeoServer

使用 IIS 在 HTTPS 后面运行 GeoServer

我在 Windows Server 2022 上的 Tomcat 9.0.78 下运行 GeoServer 2.23.2。http://localhost:8080/geoserver/https://localhost:8443/geoserver/URL 运行正常。但我找不到正确的设置https://subdomain.mydomain.com/geoserver/。当我尝试访问此网站时,它显示“ERR_CONNECTION_TIMED_OUT”

IIS 设置:在 IIS 10 中,通配符证书(例如

*.我的域名.com

添加到服务器证书中。在 HTTP 响应标头中,CORS 已启用

Access-Control-Allow-Origin "*"

我使用 IIS Aplication Request Routing 并启用了代理。在 URL Re-Write 中,Match Url 是

(geoserver/.*)

重写 URL 是

http://localhost:8080/{R:0}

指的是 Tomcat。

Tomcat Server.xml 设置:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           maxParameterCount="1000"
           />
.....

<Connector port="8443" protocol="HTTP/1.1"
           maxThreads="150"
           SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS"
           clientAuth="false"
           maxParameterCount="1000"
           keystoreFile="${catalina.home}/conf/star_mydomain.jks" /* the same certificate in IIS */
           keystorePass="password"
           keystoreType="JKS"
           URIEncoding="UTF-8"
           />

tomcat9\webapps\geoserver\WEB-INF\web.xml 设置:

<context-param>
        <param-name>GEOSERVER_CSRF_WHITELIST</param-name>
        <param-value>mydomain.com,*.mydomain.com,localhost:8080,localhost:8443</param-value>
      </context-param>

****

    <filter>
      <filter-name>cross-origin</filter-name>
      <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
      <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>*</param-value>
      </init-param>
      <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
      </init-param>
      <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>*</param-value>
      </init-param>
    </filter>

****

    <filter-mapping>
        <filter-name>cross-origin</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

最后在 GeoServer 全局配置中,当我将代理基 URL 添加为https://subdomain.mydomain.com/geoserver/并点击保存按钮,URL 重定向至https://subdomain.mydomain/geoserver/j_spring_security_check并且显示“ERR_CONNECTION_TIMED_OUT”。因此,我无法登录 GeoServer。

我错过了一些东西但看不到。

PS:服务器尚未连接网络,部署成功后即可连接。

相关内容