1前言
安装环境:windows
已安装软件:geoserver、java
说明:geoserver安装后自带jetty,但自带的jetty没有https和ssl模块。
2导入并启用jetty的https和ssl模块
2.1下载jetty
关闭geoserver服务;
查看jetty版本:
在geoserver安装路径lib中查看 jetty版本;
下载对应版本的jetty:
下载地址:Central Repository: org/eclipse/jetty/jetty-distributionCentral Repository: org/eclipse/jetty/jetty-distributionhttps://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/Central Repository: org/eclipse/jetty/jetty-distribution
2.2导入并启用jetty的https和ssl模块
将下载的文件解压,复制etc、lib、modules三个文件夹粘贴替换到geoserver安装目录中;
再到geoserver安装目录下打开cmd,分别执行以下命令添加ssl和https模块:
java -jar start.jar --add-to-start=ssl
java -jar start.jar --add-to-start=https
3启用ssl
打开geoserver安装目录下的start.ini文件,找到已加载的ssl模块:
取消ssl模块中以下参数的注释,并修改参数,端口可自定义,注意不要与已用的端口冲突;
jetty.ssl.port=8443
jetty.sslContext.keyStorePath=etc/keystore
jetty.sslContext.keyStoreAbsolutePath=${jetty.base}/etc/keystore
jetty.sslContext.trustStorePath=etc/keystore
jetty.sslContext.trustStoreAbsolutePath=${jetty.base}/etc/keystore
jetty.sslContext.keyStorePassword=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
jetty.sslContext.keyManagerPassword=OBF:1u2u1wml1z7s1z7a1wnl1u2g
jetty.sslContext.trustStorePassword=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
3.1自签名证书验证访问
如果使用自签名证书etc/keystore,则不需要修改参数,证书路径和证书密码都不需要修改;
启动服务后使用https://<localhost>:<port>/geoserver/ 访问;
port使用ssl模块中设置的端口,如上为默认的8443;
访问时会提示连接不安全,此时忽略提示,继续访问即可。
3.2申请域名ssl证书并部署
在域名平台中申请ssl数字证书,下载jks类型的证书包含两个文件,< www.xxxx.com.jks>和< jks-password.txt>;
www.xxxx.com.jks文件是数字签名证书,将它复制到geoserver的etc目录下;
jks-password.txt中存储的是证书的密码;
编辑start.ini文件,修改以下ssl模块的参数:
jetty.ssl.port=8443
jetty.sslContext.keyStorePath=etc/www.xxxx.com.jks
jetty.sslContext.keyStoreAbsolutePath=${jetty.base}/etc/www.xxxx.com.jks
jetty.sslContext.trustStorePath=etc/www.xxxx.com.jks
jetty.sslContext.trustStoreAbsolutePath=${jetty.base}/etc/www.xxxx.com.jks
jetty.sslContext.keyStorePassword= jks-password
jetty.sslContext.keyManagerPassword= jks-password
jetty.sslContext.trustStorePassword= jks-password
修改hosts文件添加以下域名解析:
127.0.0.1 www.xxxx.com
启动服务
此时可以使用https:// www.xxxx.com:8443/geoserver/ 访问服务,且安全提示已消失。
注意域名ssl证书的有效期,过期后需要更换证书,以及修改start.ini中的jks-password;
如果需要更改访问域名,则证书及密码都需要修改,重启服务后即可正常访问。
以上就是geoserver部署ssl证书的方法。