EAS连接配置获取账套提示“SSL peer shut down incorrectly”(苍穹访问EAS)
问题描述
问题描述中需包含以下部分:
详细描述问题出现的业务场景和背景
EAS连接配置获取账套提示“SSL peer shut down incorrectly”
kd.isc.iscb.util.except.IscBizException: 网络请求失败,URL是:https://IP:6888/isc/...,原因是:Remote host closed connection during handshake
// 原因:SSL peer shut down incorrectly
http-request-pool-3586/traceId:13c2401e6237e825/time:1665470028638
kd.isc.iscb.util.except.IscBizException:
at kd.isc.iscb.platform.core.connector.eas.Util.getDataCenterList(Util.java:207)
at kd.isc.iscb.formplugin.dc.DatabaseLinkFormPlugin.getDataCenterList(DatabaseLinkFormPlugin.java:675)
at kd.isc.iscb.formplugin.dc.DatabaseLinkFormPlugin.openDataCenterListForm(DatabaseLinkFormPlugin.java:267)
at kd.isc.iscb.formplugin.dc.DatabaseLinkFormPlugin.afterDoOperation(DatabaseLinkFormPlugin.java:243)
at kd.bos.form.plugin.FormViewPluginProxy.lambda$fireAfterDoOperation$9(FormViewPluginProxy.java:267)
at kd.bos.form.plugin.FormViewPluginProxy.invokeMethod(FormViewPluginProxy.java:163)
at kd.bos.form.plugin.FormViewPluginProxy.fireAfterDoOperation(FormViewPluginProxy.java:265)
at kd.bos.form.operate.FormOperate.afterInvokeOperation(FormOperate.java:425)
at kd.bos.form.operate.FormOperate.execute(FormOperate.java:305)
at kd.bos.mvc.form.FormView.invokeOperation(FormView.java:621)
at kd.bos.mvc.bill.BillView.invokeOperation(BillView.java:190)
at kd.bos.mvc.form.FormView.invokeOperation(FormView.java:540)
at kd.bos.form.control.Toolbar.itemClick(Toolbar.java:97)
at sun.reflect.GeneratedMethodAccessor1706.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:278)
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:222)
at kd.bos.mservice.form.FormServiceImpl.invokeMethod(FormServiceImpl.java:1422)
at kd.bos.mservice.form.FormServiceImpl.invokeAction(FormServiceImpl.java:884)
at kd.bos.mservice.form.FormServiceImpl.batchInvokeAction(FormServiceImpl.java:554)
at sun.reflect.GeneratedMethodAccessor674.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kd.bos.service.DispatchServiceImpl.invoke(DispatchServiceImpl.java:48)
at sun.reflect.GeneratedMethodAccessor211.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kd.bos.mservice.rpc.dubbo.debug.LocalDebugProxy$1.lambda$invoke$0(LocalDebugProxy.java:61)
at kd.bos.mservice.rpc.dubbo.debug.DubboDebugUtil.invoke(DubboDebugUtil.java:46)
at kd.bos.mservice.rpc.dubbo.debug.LocalDebugProxy$1.invoke(LocalDebugProxy.java:58)
at com.sun.proxy.$Proxy56.invoke(Unknown Source)
at kd.bos.web.DispatchServiceHelper.invokeBOSServiceByAppId(DispatchServiceHelper.java:93)
at kd.bos.web.actions.FormAction.batchInvokeAction(FormAction.java:269)
at sun.reflect.GeneratedMethodAccessor673.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at kd.bos.actiondispatcher.Invoker.invoke(Invoker.java:23)
at kd.bos.actiondispatcher.ActionFilter.doFilter(ActionFilter.java:169)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.cage.controller.CageActionFilter.doFilter(CageActionFilter.java:23)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.ext.hr.web.filter.HrUserContextFilter.doFilter(HrUserContextFilter.java:39)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.login.filter.LoginFilter.doFilter(LoginFilter.java:723)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.ext.hr.web.filter.HrLoginFilter.doFilter(HrLoginFilter.java:134)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.ext.hr.web.filter.SafeUriFilter.doFilter(SafeUriFilter.java:59)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.metric.instruments.servlet.MetricFilter.doFilter(MetricFilter.java:95)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.trace.instrument.web.TraceFilter.generateTraceId(TraceFilter.java:139)
at kd.bos.trace.instrument.web.TraceFilter.doFilter(TraceFilter.java:103)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.framework.filter.ThreadLifeCycleFilter.doFilter(ThreadLifeCycleFilter.java:36)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.mservice.circuitbreaker.filter.web.CircuitbreakerFilter.lambda$doFilter$0(CircuitbreakerFilter.java:50)
at kd.bos.mservice.circuitbreaker.noop.NoopCircuitbreaker.call(NoopCircuitbreaker.java:43)
at kd.bos.mservice.circuitbreaker.filter.web.CircuitbreakerFilter.doFilter(CircuitbreakerFilter.java:49)
at kd.bos.service.web.filter.KFilterConfig$2.doFilter(KFilterConfig.java:278)
at kd.bos.service.web.filter.KDCommonFilter$2.doFilter(KDCommonFilter.java:75)
at kd.bos.service.web.filter.KDCommonFilter.doFilter(KDCommonFilter.java:103)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.lang.Thread.run(Thread.java:748)
Caused by:
at kd.isc.iscb.util.misc.NetUtil.handleIOException(NetUtil.java:551)
at kd.isc.iscb.util.misc.NetUtil.getResponseCode(NetUtil.java:490)
at kd.isc.iscb.util.misc.NetUtil.handleResponse(NetUtil.java:345)
at kd.isc.iscb.util.misc.NetUtil.innerAccess(NetUtil.java:341)
at kd.isc.iscb.util.misc.NetUtil.httpAccess(NetUtil.java:319)
at kd.isc.iscb.util.misc.NetUtil.httpRead(NetUtil.java:254)
at kd.isc.iscb.util.misc.NetUtil.httpRead(NetUtil.java:250)
at kd.isc.iscb.platform.core.connector.eas.Util.getDataCenterList(Util.java:205)
... 108 more
Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:994)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347)
at kd.isc.iscb.util.misc.NetUtil.getResponseCode(NetUtil.java:488)
... 114 more
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at sun.security.ssl.InputRecord.read(InputRecord.java:505)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
... 124 more
问题或异常提示截图
原因分析
EAS连接配置是,协议选择错误,EAS使用的是HTTP协议,却选择成了HTTPS协议;
如果EAS门户的登陆地址是 http://IP:6888/portal是这样登陆,代表HTTP协议
如果EAS门户的登陆地址是 https://IP:6888/portal是这样登陆,代表HTTPS协议
解决方案
连接配置时选择正确的协议。
另外,苍穹连接配置点击EAS部署报SSL peer shut down incorrectly
解决方案:
修改eas实例配置 eas/server/profiles/server*/config/vm.properties, 增加配置(修改前请注意备份):
jdk.tls.allowUnsafeServerCertChange=true sun.security.ssl.allowUnsafeRenegotiation=true https.protocols=TLSv1,TLSv1.1,TLSv1.2
修改后重启所有服务器实例再进行测试。
也可以加上javax.net.debug=ssl:handshake:data,那么jdk在网络调用过程会打印握手失败的原因,这里可能是协商https版本或者证书安全问题导致的失败。
详情参考https://vip.kingdee.com/link/s/lHll4
EAS连接配置获取账套提示“SSL peer shut down incorrectly”(苍穹访问EAS)
本文2024-09-23 00:50:29发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142082.html