升级至JDK 17与Spring Boot 3.0.5后Logback TCP Appender启动报错
解决方案
核心原因
旧版本logstash-logback-encoder:7.3未适配JDK17的安全算法变更——JDK17移除了对SHA1PRNG算法别名的默认支持,而该版本编码器硬编码依赖此算法创建SSL上下文,导致初始化失败。
方案1:升级编码器依赖(推荐)
将logstash-logback-encoder升级到适配JDK17的稳定版本(如7.14.0或更高),新版本已修复算法适配问题。修改POM:
<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>7.14.0</version> <!-- 可选择更高兼容版本 --> </dependency>
升级后无需修改Logback配置,重启应用即可恢复正常。
方案2:显式指定兼容的安全随机算法(临时 workaround)
若暂时无法升级依赖,可在Logback的<ssl>节点中添加指定JDK17支持的算法(如DRBG或NativePRNG):
<ssl> <trustStore> <location>file:/etc/esaas/keystore/esaas-keystore.jks</location> <password>****</password> </trustStore> <keyStore> <location>file:/etc/esaas/keystore/esaas-keystore.jks</location> <password>****</password> </keyStore> <!-- 指定兼容算法 --> <secureRandomAlgorithm>DRBG</secureRandomAlgorithm> </ssl>
此方法仅临时绕过问题,长期建议采用方案1以避免其他潜在兼容性风险。
内容的提问来源于stack exchange,提问作者Chandresh Mishra
相关产品推荐
相关产品推荐

