ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

GeoServer升级HTTPS全攻略:从证书生成到Jetty/Tomcat配置

GeoServer升级HTTPS全攻略:从证书生成到Jetty/Tomcat配置 做GIS服务的人早晚会碰到这个需求把GeoServer从HTTP升级到HTTPS。不管是为了给前端WebApp提供加密接口、适配OAuth2回调还是应对各类安全合规检查给geoserver部署ssl证书都是绕不开的一步。这事本身不复杂但坑不少尤其是证书格式、Java密钥库、Jetty/Tomcat配置这几个环节一路踩下来能让人怀疑人生。这篇我就把完整流程、关键原理和踩坑记录一次性讲清楚适合正在给GeoServer配SSL、被证书链或者握手报错卡住的同学参考。先说结论GeoServer本身是一个Java Web应用多数发行版内置了Jetty容器生产环境也常见部署在外置Tomcat里。所以部署SSL的实质是给它所在的Servlet容器配置HTTPS连接器而不是在GeoServer界面里点几下就能完成。理解了这一点后面所有操作就都有了方向。1. 先搞清楚为什么要给GeoServer配SSL场景与证书选型1.1 非配不可的三个典型场景第一个场景是前端页面混合内容拦截。现在很多GIS应用的前端是HTTPS站点页面里通过JavaScript直接请求GeoServer的WMS/WFS/WMTS服务。如果GeoServer还是HTTP浏览器会直接拦截混合内容地图瓦片或者要素请求全部失败。你会在控制台看到类似“Mixed Content: The page at https://... was loaded over HTTPS, but requested an insecure resource”的报错。这不是代码问题是协议不一致。第二个场景是安全合规要求。越来越多的内网或政务项目验收时会检查通信加密情况尤其涉及地理信息数据时明文HTTP传输显得非常扎眼。三级等保测评里“通信传输完整性”和“通信传输保密性”这两项基本就是靠HTTPS来满足的。第三个场景是外部系统对接的强制要求。一些平台回调地址要求必须是HTTPS比如OAuth2、OIDC的单点登录回调地址又比如第三方地图服务商或数据平台做服务器间数据同步时对端只允许向HTTPS地址推送数据。没有SSL证书这些对接直接做不了。1.2 证书类型怎么选自签名、内网CA还是公网证书这是选型第一步也是最容易糊弄的一步。我的建议很直接能用公网受信任证书就别用自签名能用企业内网CA证书也尽量别用自定义自签名。原因后面会说。证书类型适用场景优点缺点自签名证书本机开发、临时测试免费、生成快、完全自主控制所有客户端都会报“不受信任”警告Java客户端直接握手失败内网CA签发证书企业内网正式环境内网统一信任、可批量管理、吊销可控需要自建CA体系每台客户端要安装根证书公网证书阿里云/腾讯云/Lets Encrypt对外提供服务、公网访问全球通用信任链、零客户端配置需要域名、需要验证域名所有权付费证书有成本具体到GeoServer如果你是公网发布服务直接搞一个域名申请阿里云或腾讯云的免费证书或者用Lets Encrypt都行。如果你只是内网用建议评估一下公司有没有现成的CA体系——很多大企业已经有Windows CA或者OpenCA之类的内网证书服务去申请一张服务器证书比自签名省心太多。为什么我不推荐自签名因为GeoServer的客户端不只是浏览器还有QGIS、ArcGIS、各种Java/Python脚本、移动App。浏览器还能手动点击“继续访问”但很多GIS客户端和SDK在HTTPS握手阶段就直接失败根本不给你“信任例外”的机会。你在浏览器里看着没问题结果QGIS连不上那才是最头疼的。2. 涉及的核心概念Java信任体系与证书格式转换2.1 先理解JKS、PKCS12和PEM的关系GeoServer跑在Java环境里Java处理SSL有一套自己的密钥库机制这套机制跟你在Nginx上配SSL完全是两种玩法。Nginx只需要三个文件server.crt、server.key、ca.crt配一条ssl_certificate指令就完事。但Java的SSL配置面向的是密钥库KeyStore你必须要有一个store文件把服务器私钥和证书链放进去Tomcat/Jetty才能用。这里有几个核心格式你必须分清楚PEM纯文本格式以-----BEGIN CERTIFICATE-----开头。.crt、.cer、.pem都是这种。密钥文件就是-----BEGIN PRIVATE KEY-----。PKCS12二进制格式后缀通常是.p12或.pfx可以把证书链私钥打包成一个文件有统一密码保护。JKSJava专属的密钥库格式后缀.jks历史上Java一直用它但从JDK 8开始官方推荐转向PKCS12。DER二进制证书格式Windows下常见。整个配置流程的逻辑链是这样的从CA拿到的证书和私钥 →转换→ PKCS12密钥库 →可选转换→ JKS密钥库 →指向→ Tomcat/Jetty连接器配置为什么一定要走PKCS12因为PKCS12是行业通用的“证书私钥”打包格式几乎所有证书服务商都会提供比如阿里云下载证书时会给你xxx.pfx和xxx.jks两种Tomcat格式。如果你拿到的证书是Nginx格式.crt.key也可以用OpenSSL转换成PKCS12openssl pkcs12 -export \ -in server.crt \ -inkey server.key \ -certfile ca.crt \ -name geoserver \ -out geoserver.p12这里-certfile ca.crt的作用是把中间CA证书也打进去形成完整的证书链。这一步非常关键后面会细讲。如果你拿到的就是P12文件直接用即可。如果你只是自签名测试那更简单直接用Java的keytool命令一步生成密钥库keytool -genkeypair \ -alias geoserver \ -keyalg RSA \ -keysize 2048 \ -validity 3650 \ -keystore geoserver.p12 \ -storetype PKCS12 \ -dname CNyour-server-hostname执行过程中会让你设置密钥库密码、确认信息等。这样生成的P12文件自带私钥和自签名证书可以用于纯测试场景。2.2 为什么Java环境特别强调“证书链完整”这是Java环境下SSL配置和Nginx环境最大的区别之一也是很多人踩坑的重灾区。服务器证书通常不是由根证书直接签发的而是由中间CA签发。浏览器和大多数现代客户端会自动向下补齐中间证书所以有些时候你只配一张叶子证书浏览器也能正常访问。但Java客户端不一定会帮你补齐尤其是Spring、Java原生HttpClient、GeoServer内置的一些SDK它们严格按照信任链逐级验证缺了中间证书直接报unable to find valid certification path to requested target。所以你在部署GeoServer的SSL时必须确保证书链完整。最稳妥的做法是把服务器证书和所有中间证书按顺序放进同一个crt文件里再转换成PKCS12。拼接证书链的标准顺序是最上面是你的服务器证书下面是中间证书最后是根证书如果CA给了的话。cat server.crt intermediate.crt root.crt fullchain.crt然后拿这个fullchain.crt去转换PKCS12。如果直接用Nginx都会用的fullchain.pem去转也是可以的。2.3 GeoServer能用的几种部署形态GeoServer的部署形态会直接决定SSL配置文件改在哪里。最常见的两种一种是GeoServer自带的Jetty容器。你从官网下载的geoserver-2.x.x-bin.zip解压后运行bin/startup.sh或者bin/startup.bat它内部其实是跑了一个Jetty。这种情况下你要改的是Jetty自己的SSL配置。另一种是部署到独立的Tomcat。如果你生产环境本来就有Tomcat或者因为性能、CLI管理等原因把GeoServer做成geoserver.war放在外置Tomcat里那SSL配置就在Tomcat的conf/server.xml里。这两种方式的配置入口完全不同后面实操部分我会分别说明。先记住一个原则GeoServer本身不负责HTTPS加密加密是它所在的Web容器的事。3. 完整实操从生成证书到重启生效3.1 第一步准备证书文件假设你已经在阿里云或腾讯云申请了免费证书下载时会看到服务商提供多种格式。你需要关注的是Tomcat和Nginx两种。如果服务商没给Tomcat格式就下载Nginx格式然后自己转。下载下来的Nginx格式一般包含两个文件xxx.pem证书有的服务商拆成xxx.crt和xxx_root_bundle.pem和xxx.key私钥。第一步是确认证书链是否完整。把下载的.pem用文本编辑器打开看里面是不是只有一张证书-----BEGIN CERTIFICATE----- 你的服务器证书编码 -----END CERTIFICATE-----如果只有一个BEGIN CERTIFICATE块那么大概率还需要额外下载中间证书。阿里云免费证书现在一般会给一个完整的.pem里面包含服务器证书和中间证书链所以还是自己确认一下比较稳妥。如果不完整去CA官网下载对应中间CA证书然后拼接成完整链。3.2 第二步构建PKCS12密钥库证书和私钥就绪后执行转换命令。如果已有完整链文件fullchain.pem和私钥server.keyopenssl pkcs12 -export \ -in fullchain.pem \ -inkey server.key \ -name geoserver \ -out geoserver.p12命令会提示你设置导出密码。这个密码要记住后面配置Tomcat/Jetty要用。建议设置一个强密码比如Geoserver2024#SSL这种级别因为P12文件里包含私钥泄露等于私钥泄露。如果你拿到的证书是阿里云下载的Tomcat格式.jks就跳过转换直接用JKS文件。如果下载的是.pfx那其实就是PKCS12直接改名成.p12就能用或者用keytool再加工一下以改变密码keytool -importkeystore \ -srckeystore geoserver.pfx \ -srcstoretype PKCS12 \ -srcalias geoserver \ -destkeystore geoserver.p12 \ -deststoretype PKCS12 \ -destalias geoserver转换完成后可以用keytool -list验证密钥库内容keytool -list -v -keystore geoserver.p12 -storetype PKCS12输入密码后应该能看到一个PrivateKeyEntry且证书链数量大于等于2服务器证书中间证书才算完整。3.3 第三步Jetty内置方式配置默认安装形态Jetty的SSL配置有两种路径老版本改etc/jetty-ssl.xml和etc/jetty-https.xml新版本通过start.d/ssl.ini和start.d/https.ini配置。另外还有一个更直观的做法直接修改bin/startup.sh里的JVM参数。先说最通用、最不容易出错的方式通过JVM系统属性指定密钥库。打开GeoServer安装目录下的bin/startup.shWindows对应startup.bat找到JAVA_OPTS配置段添加以下参数JAVA_OPTS$JAVA_OPTS \ -Djavax.net.ssl.keyStore/path/to/geoserver.p12 \ -Djavax.net.ssl.keyStorePassword你的密码 \ -Djavax.net.ssl.keyStoreTypePKCS12 \ -Djetty.sslContext.keyStorePath/path/to/geoserver.p12 \ -Djetty.sslContext.keyStorePassword你的密码 \ -Djetty.sslContext.trustStorePath/path/to/geoserver.p12 \ -Djetty.sslContext.trustStorePassword你的密码不过这种写法在Jetty 9.4.x上并不是所有版本都识别jetty.sslContext.*属性更保险的还是走Jetty的模块配置。对于GeoServer 2.15以上版本使用Jetty 9.4.x正确做法是这样的先启动一次GeoServer让Jetty生成start.ini和start.d/目录也可以手动创建。然后在start.d/下新建ssl.ini写入--modulessl jetty.ssl.keystore.path/absolute/path/to/geoserver.p12 jetty.ssl.keystore.typePKCS12 jetty.ssl.keystore.password你的密码 jetty.ssl.keymanager.password你的密码 jetty.ssl.truststore.path/absolute/path/to/geoserver.p12 jetty.ssl.truststore.typePKCS12 jetty.ssl.truststore.password你的密码 jetty.ssl.needClientAuthfalse jetty.ssl.wantClientAuthfalse再新建https.ini写入--modulehttps jetty.https.port8443注意ssl.ini里--modulessl这一行不是每一版都需要有些版本是在start.ini里通过--modulehttps触发依赖模块ssl.ini只需写属性。稳妥做法是先看start.d/目录下是否有ssl.ini文件如果没有就手动创建。如果Geoserver版本比较老比如2.14之前需要修改的是etc/jetty-ssl.xml和etc/jetty-https.xml里面把jetty.ssl.keystore相关的Ini属性换成实际路径和密码。配置完成后重启GeoServercd /path/to/geoserver/bin ./shutdown.sh ./startup.sh然后访问https://服务器IP:8443/geoserver浏览器如果弹出证书警告但能看得到内容说明SSL已经启用用curl -k验证也能看到GeoServer页面HTMLcurl -k https://localhost:8443/geoserver/web/看到GeoServer登录界面就是成功了。如果这时https://服务器IP:8080/geoserverJetty默认HTTP端口是8080仍然能访问说明HTTP还没被禁用。要强制HTTPS可以把HTTP连接器直接关掉或者在应用层面配置重定向。Jetty方式下最简单粗暴的做法就是直接停掉jetty.http.port在start.ini里注释掉jetty.http.port8080然后重启。但这样做之后如果你还需要本机HTTP健康检查就不方便了。另一个办法是保留HTTP但不对外暴露端口靠防火墙把8080封掉。3.4 第四步外置Tomcat方式配置如果你的GeoServer是以war包形式部署在Tomcat里配置就更接近传统Java Web应用的套路了。打开$CATALINA_HOME/conf/server.xml找到Service nameCatalina区域添加一个HTTPS连接器Connector port8443 protocolorg.apache.coyote.http11.Http11NioProtocol maxThreads200 schemehttps securetrue SSLEnabledtrue keystoreFile/path/to/geoserver.p12 keystorePass你的密码 keystoreTypePKCS12 clientAuthfalse sslProtocolTLS ciphersHIGH:!aNULL:!MD5:!3DES /这里有几个关键点keystoreTypePKCS12如果用的是.jks文件这里要改成JKS但Java 8及以上强烈建议直接用PKCS12。clientAuthfalse必须保持false。如果误配成true就会出现客户端浏览器访问时提示“需要提供客户端证书”之类的错误下面常见问题会专门讲。keystorePass这个密码是P12文件的密码不是GeoServer管理员的密码别搞混。端口8443是默认的HTTPS备用端口你想用443也可以但需要root权限或做端口转发。修改完保存重启Tomcat即可cd $CATALINA_HOME/bin ./shutdown.sh ./startup.sh如果一切正常通过https://你的域名:8443/geoserver就能访问了。如果你要用443端口直接访问即https://你的域名/geoserver需要让Tomcat绑定443。在Linux下可以用socat做端口转发或者用Nginx在80/443端口上做反向代理到Tomcat的8080然后反向代理来终结SSL。其实很多生产环境就是这么干的外网用Nginx做443终结内网再转发给Tomcat的8080。这种情况下Tomcat本身甚至不需要配SSL但如果你想做到“端到端全链路加密”Tomcat内部还是要开HTTPS。3.5 第五步验证与收尾配置好之后不要急着宣布“完成”。我建议跑一波完整的验证第一是浏览器访问测试正常打开GeoServer登录页地址栏有小锁标志。第二是命令行握手测试openssl s_client -connect localhost:8443 -servername 你的域名 21 | grep Verify return code如果输出Verify return code: 0 (ok)说明证书链在服务端是完整的如果显示unable to get local issuer certificate说明证书链不完整需要回去检查P12里的证书链。第三是客户端实际连接测试。用QGIS添加WMS/WFS服务时把URL换成https://确认能正常加载图层用Java代码或者脚本请求一下https://.../geoserver/ows?servicewmsrequestGetCapabilities确认Java客户端不报证书错误。这一步最容易被忽略因为很多坑是浏览器看不出来的只有客户端一跑才暴露。第四是检查GeoServer日志。在日志文件里搜索SSL、https、keystore关键词看有没有异常。Jetty和Tomcat在启动时如果密钥库密码错误或者文件路径不对都会在日志里留下明显的报错信息比如java.io.IOException: keystore password was incorrect或FileNotFoundException。收尾阶段还有一件事确认防火墙放行了新端口。如果你用的是8443记得在防火墙规则里放开8443/tcp。很多人配置完半天访问不了最后发现是防火墙或者安全组没放行。阿里云的话还要检查安全组规则。4. 常见问题与排查技巧实录4.1 报错“no required ssl certificate was sent”这个错误非常典型英文直译是“没有发送所要求的SSL证书”。它在服务端日志里出现的形式可能是HTTP ERROR 400 Problem accessing /geoserver/... SSLHandshakeException: no required ssl certificate was sent客户端浏览器会直接弹一个“此站点需要客户端证书”的对话框或者直接连接失败。出现这个错误几乎可以断定你的服务端把clientAuth或needClientAuth设成了true。这会导致服务端在握手时要求客户端必须提供一张由服务端信任的客户端证书。对于普通的GeoServer Web访问和GIS客户端绝大多数场景根本不需要双向认证所以处理办法很简单在Tomcat的server.xml连接器里把clientAuthtrue改成clientAuthfalse。在Jetty的ssl.ini里把jetty.ssl.needClientAuthtrue改成falsejetty.ssl.wantClientAuth也改成false。修改后重启问题即可解决。如果你确实需要双向认证比如某些政务内网对接有强制要求那就需要准备一套完整的客户端证书签发和管理体系那是另一个深度话题不在本文范围展开。4.2 报错“unable to get local issuer certificate”或Java抛“unable to find valid certification path”这两种报错虽然环境不同但根因高度一致证书链不完整或者客户端不信任你的根CA。服务端侧的unable to get local issuer certificate大多是因为P12密钥库里只导入了服务器证书没有包含中间CA证书。解决思路用openssl s_client检查服务器返回的证书链确认服务端发送了完整的Server Certificate Intermediate CA Root CA链条。如果缺中间CA就把中间CA拼进证书链重新生成P12。客户端侧报unable to find valid certification path to requested target则是客户端Java运行时里缺少你服务器所使用CA的根证书。处理办法有两种一种是把根证书导入客户端的cacerts信任库keytool -import -alias yourRootCA \ -file rootCA.crt \ -keystore $JAVA_HOME/lib/security/cacerts \ -storepass changeit另一种是如果你用的是JKS信任库在Java启动参数里指定-Djavax.net.ssl.trustStore/path/to/truststore.jks。QGIS也有类似问题如果根证书没被系统信任QGIS连HTTPS服务时会直接报错你需要把根证书安装到操作系统的信任列表里。Windows下双击根证书选择“安装证书”存放到“本地计算机→受信任的根证书颁发机构”即可。4.3 报错“服务器不支持SSL”或“SSL握手失败”这个报错信息比较经典Windows上JDBC或者老一点GIS工具经常报ssl recv: 服务器不支持ssl。我第一次遇到时一度怀疑是证书问题排查半天才发现根本不是。绝大多数情况下这个报错意味着你访问的端口根本没开HTTPS比如你访问的是8080端口HTTP却用https://协议去连。你配了8443的HTTPS但防火墙没放行客户端根本连不上那个端口。Tomcat/Jetty启动失败了SSL连接器没有生效。处理步骤也很清晰先确认网络通不通再确认服务端SSL连接器是否真的在监听。ss -tlnp | grep -E 443|8443如果看不到监听端口说明配置没生效或者启动失败去翻GeoServer或Tomcat的错误日志优先看密钥库路径和密码相关报错。还有一种情况是Tomcat配置了HTTPS连接器但GeoServer应用本身因为某些原因在启动初始化时就失败了整个web应用挂掉表现为端口通但访问404或直接连接被重置。如果你用Nginx做了反向代理还需要检查Nginx的proxy配置。有些Nginx配置没把X-Forwarded-Proto头传下去导致GeoServer明明跑的是HTTPS但应用内部认为自己是HTTP从而生成错误的GetCapabilities请求地址。这就是另一个坑在Tomcat里还要配置server.xml的RemoteIpValve或者在应用前加过滤器来正确处理转发头Valve classNameorg.apache.catalina.valves.RemoteIpValve internalProxies127.0.0.1 remoteIpHeaderx-forwarded-for protocolsHeaderx-forwarded-proto /4.4 常见问题速查表现象可能原因优先排查方向浏览器访问HTTPS端口连不上防火墙未放行端口 / SSL连接器没起来ss -tlnp看端口监听检查日志“您的连接不是私密连接”自签名证书或证书域名不匹配客户端安装根证书证书申请对应正确域名Java客户端报证书路径错误客户端信任库缺少根CA根证书导入cacertsQGIS连不上HTTPS服务QGIS所在系统不信任根证书系统证书库导入根证书页面能开但地图请求失败前端HTTP/HTTPS混合内容全线切换HTTPS清理浏览器缓存强制刷新GeoServer返回的URL还是http反向代理头没处理Tomcat配置RemoteIpValve证书过期后服务直接挂证书有效性到期配置到期监控与自动续期4.5 关于续期和证书过期的惨痛教训证书有效期是SSL运维里最容易忽略的定时炸弹。尤其是使用免费证书时有效期通常只有3个月到1年。我自己就踩过一次阿里云免费证书到期前忘记续期结果生产环境GeoServer突然大面积报SSL错误排查了半小时才意识到是证书过期。建议做两件事一是设置证书到期提醒在手机日历上添加时间点或者在监控系统里面新增一个“证书有效期检查”的探活任务每天检查一次剩余天数提前30天告警。二是掌握证书更新后的替换流程。替换流程其实很简单拿到新证书后重新生成P12覆盖旧文件重启GeoServer/Tomcat即可。但是要检查一件事——新证书签发后它的证书链是否与旧证书一致。如果CA根证书换了客户端原来的信任可能还会出问题所以替换后在多个客户端实测一下最稳妥。5. 免费方案实操用Lets Encrypt给公网GeoServer上HTTPS如果GeoServer是面向公网服务的又不想花钱买证书Lets Encrypt是非常好的选择。它的证书有效期90天但可以通过脚本自动续期全程不花钱。5.1 申请与部署流程Lets Encrypt验证域名所有权最常用的方式是HTTP-01挑战也就是需要在你的服务器上通过HTTP端口80响应一个临时验证文件。这个流程对跑在8080端口上的GeoServer毫无影响因为验证走的是Nginx或Apache的80端口不是GeoServer本身。假设你已经用Nginx托管了你的域名certbot申请证书的步骤如下sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d gis.yourdomain.comcertbot会自动帮你修改Nginx配置把server_name gis.yourdomain.com这条server块的80端口请求做个临时响应完成验证后自动签发证书。证书文件会保存在/etc/letsencrypt/live/gis.yourdomain.com/fullchain.pem和privkey.pem。这时候你把这两个文件转换成PKCS12sudo openssl pkcs12 -export \ -in /etc/letsencrypt/live/gis.yourdomain.com/fullchain.pem \ -inkey /etc/letsencrypt/live/gis.yourdomain.com/privkey.pem \ -name geoserver \ -out /etc/letsencrypt/live/gis.yourdomain.com/geoserver.p12然后指定给Jetty或Tomcat用。注意Lets Encrypt证书续期之后fullchain.pem和privkey.pem会更新但生成的geoserver.p12不会自动更新所以要在续期钩子里加上重新生成P12和重启GeoServer的脚本否则每次续期后证书和密钥库不一致服务还是会用旧证书。5.2 自动续期的关键脚本certbot自带续期功能默认通过systemd定时任务每天检查两次。在/etc/letsencrypt/renewal-hooks/deploy/目录下新建一个脚本renew_geoserver_ssl.sh内容大致如下#!/bin/bash DOMAINgis.yourdomain.com openssl pkcs12 -export \ -in /etc/letsencrypt/live/$DOMAIN/fullchain.pem \ -inkey /etc/letsencrypt/live/$DOMAIN/privkey.pem \ -name geoserver \ -out /etc/letsencrypt/live/$DOMAIN/geoserver.p12 \ -password pass:你的密码 systemctl restart geoserver注意-password pass:参数直接写在命令行里会出现在进程列表中生产环境建议改用-passin file:/path/to/passwordfile方式传入密码文件更安全一些。脚本写好后用chmod x赋予可执行权限。这套机制跑通之后证书续期、P12转换、服务重启全自动完成你只需要定期确认一下证书有没有续期成功别把磁盘空间弄满就行。最后再说几句大实话我实际操作过很多次给GeoServer配证书的流程最大的体会是这事的核心不在于“证书”本身而在于搞清楚Java生态里“密钥库、信任库、证书链”这三个概念的区别。你如果把PEM证书直接扔给Tomcat去读那必然报错你如果理解了Tomcat要的是KeyStorecrt和key必须先进P12或JKS那整个流程就是顺水推舟的事情。配置过程中的每一个报错其实都是在告诉你一个基本信息要么是密钥库内容不对要么是信任链断了要么是端口或协议错位。按照我从证书生成、格式转换、容器配置、客户端验证这条链路逐级排查大部分问题都能在10分钟内定位。另外提醒一句HTTP虽然被封禁了但如果你有运维权限也可以先把原来8080端口的外部访问权限收掉只保留HTTPS端口从源头上避免“有人绕过HTTPS直接用HTTP明文访问GeoServer”的情况。这样处理之后无论浏览器、QGIS还是外部接口调用都强制走加密通道安全性会提升一大截。最后再分享一个小技巧在配置完成后可以用keytool -list -v -keystore geoserver.p12 -storetype PKCS12 | grep Valid快速查看证书有效期也可以把这条命令放进运维脚本里每天定时检查证书剩余天数比等到客户端报SSL错误再处理要稳妥得多。
返回列表