//程序代码过程中收起的
内容 2022-06-08 16:32:46,771 [http-nio-8081-exec-6] DEBUG com.zrxxkj.commons.utils.weixin.pay.WxPayService:120 -
提出申请付款推送模块:{refund_desc=退通行费, nonce_str=Gh4MoNXES0WDO5nbkU2SbZrPiHaGZyhy, out_trade_no=P20220608162155IIBIJRMCBWHCJUYHO, out_refund_no=PR202206081632468FUWGPHOEWVT5GYZ, appid=wx7b2062b66624a45d, total_fee=10, refund_fee=10, mch_id=1562067581, sub_mch_id=1603627104, notify_url=https://bw.shzrxxkj.com/rockybw1-api/refund/notify/wx/parking} 2022-06-08 16:32:46,810 [http-nio-8081-exec-6] ERROR com.zrxxkj.bluewhale.config.
exception.handler.Controller
ExceptionHandler:107 - 程序代码错误,uri: /parking/order/refund/4171012
java.lang.RuntimeException:
Javax.net.ssl.SSLHandshakeException: No appropriate
Protocol(protocol is disabled or cipher suites are inappropriate) at com.jfinal.weixin.sdk.utils.HttpKitExt.postSSL(HttpKitExt.java:230) at com.jfinal.weixin.sdk.utils.HttpUtils$HttpKitDelegate.postSSL(HttpUtils.java:479) at com.jfinal.weixin.sdk.utils.HttpUtils.postSSL(HttpUtils.java:44) at com.jfinal.weixin.sdk.api.PaymentApi.refund(PaymentApi.java:152) at com.zrxxkj.commons.utils.weixin.pay.WxPayService.sendRefund(WxPayService.java:122) at com.zrxxkj.bluewhale.service.pay.RefundService.sendParkingRefund(RefundService.java:77) at com.zrxxkj.bluewhale.controller.parking.admin.SysCarOrderController.refund(SysCarOrderController.java:170) at com.zrxxkj.bluewhale.controller.parking.admin.SysCarOrderController$$FastClassBySpringCGLIB$$f15a3985.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69) at org.springframework.aop.fram
原先的服务器是centos7 最近centos7 停止支持了。
centos8比centos7还短命,无奈,只能选择迁移到rocky linux 8
然后我写了个迁移步骤(不要在意字丑),按部就班往下一步一步弄,虽然2个系统还是有些许差别,但是基本是迁移成功,能跑了。
然后我们就开始了第10条,测试缴付功能
付款很快,开闸也没问题,毕竟是自己测试付的钱,虽然是1分钱,但也是钱啊!!!
当我兴致满满的点击付款按钮后,惊呆,操作失败!
当时我就自闭了!
当时我就自闭了!
当时我就自闭了!
重要的事情说三遍!
测出问题是好事,总比迁移完了,负载均衡切过去后发现有问题了。那才自闭呢!
依旧是直奔CSDN,看看大佬是咋操作的,然而并没有啥卵用。
这个全试了个遍都不行
直接上硬菜!
问题解决
1、找到jdk目录/jre/lib/security/java.security,去掉jdk.tls.disabledAlgorithm中的SSLv3、TLSv1、TLSv1.1,参考阿里数据库连接池Druid 连接MySQL失败:javax.net.ssl.SSLHandshakeException: No appropriate protocol_Wingkin的博客-CSDN博客
百度一查,发现是jdk1.8版本导致SSL调用权限上有问题,新电脑装的jdk是jdk1.8.0_291,版本比较高。搜到的解决方法是:
找到jdk 1.8安装目录,找到C:\Program Files\Java\jre里面的lib\security 下面有个java.security。找到对应的SSLv3,删除掉,重启项目就好了。(删掉SSLv3就是允许SSL调用)
我找到Java安装目录下D:\Java\jdk1.8.0_291\jre\lib\security中的java.security文件,将对应的SSLv3删掉了,但运行还是出错。最后发现SSLv3后面有两个和它后缀一样的算法,将它们一起删掉后重启项目,成功解决问题。
删除后的文件如下图所示。
2、但是上面方法并没有解决问题,还需要执行以下命令,才最终解决收起,参考java – SSLHandShakeException No Appropriate Protocol – Stack Overflow
update-crypto-policies --set LEGACY //最主要的就是这句