发布和使用 HTTPS 加密后的 Web 服务

发送反馈


iServer 和 iEdge 均支持将经过 https 加密后的第三方 Web 服务,发布为 WMS 、WMTS 、 REST 以及 WFS 等服务类型,并且 iServer Web 打印服务支持打印经过 https 加密后的 Web 服务。iServer 和 iEdge 代理发布和使用 https 服务时会遇到以下两种情况:

情形一:https 服务器的 SSL 证书经过权威机构认证

如果 https 服务器使用的 SSL 证书经过权威机构认证,由于 java 中已经内置了相应的客户端证书,因此 iServer 和 iEdge 不需要做任何配置即可代理发布和使用第三方 https 服务。

情形二:https 服务器的 SSL 证书未经过权威机构认证

如果 https 服务器使用的 SSL 证书未经过权威机构认证,这样 java 中就缺少了验证此 https 服务器身份的客户端证书,所以需要先在 https 服务器中生成客户端证书,然后将生成的客户端证书提供给  iServer 和 iEdge 使用。在 iServer(iEdge 同 iServer)中只需正确导入客户端证书和填写 https 服务地址,即可成功发布和使用经过 https 加密后的第三方 Web 服务。

客户端证书生成步骤

  1. 在 https 服务器上设置 JAVA 环境变量,即将 jdk 的 bin 目录加入到系统的 PATH 环境变量中。
  2. 在 https 服务器的任意位置打开命令行窗口,输入命令生成服务器端证书,示例如下:

keytool -genkey -alias tomcat -keyalg RSA -dname "cn=supermap.iserver.org,ou=localhost,o=localhost,l=china,st=sichuan,c=cn" -keystore D:\key.keystore

  1. 导出公钥证书,在 https 服务器的命令行窗口输入如下命令:

keytool -export -alias tomcat -keystore D:\key.keystore -rfc -file D:/supermap.cer

  1. 公钥证书的导入以及客户端证书的生成,在 https 服务器的命令行窗口中输入如下命令,即可生成客户端证书 key.truststore ,供 iServer 使用。

keytool -import -alias tomcat -file D:/supermap.cer -keystore D:/key.truststore

客户端证书配置方式

在 iServer 服务器上,修改 %SuperMap iServer_HOME%/bin 目录下的 catalina.bat 文件,即将客户端证书(key.truststore)添加到 iServer 中,用于验证 https 服务器身份。具体修改内容如下:

修改前如下所示:

set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1536m -XX:MaxPermSize=192m -Xss512k

修改后如下所示:

 set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -XX:MaxPermSize=192m -Xss512k -Djavax.net.ssl.trustStore=D:/key.truststore -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword=123456

https 服务地址填写方式

在 iServer 和 iEdge 中填写待转发的 https 服务地址时,https 服务地址要用域名形式(即 https 服务器对应的域名),如 https://supermap.iserver.org:8443/iserver/services/map-china400/rest 。