java – Spring Boot 2.1嵌入式Tomcat – 密钥库密码不正确
更新 – >添加Security.addProvider(new BouncyCastleProvider());解决了这个问题
将ActiveMQ Broker添加到我的配置中会导致以下错误.如果我删除了JMS配置,则此错误消失. java.security.UnrecoverableKeyException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: pad block corrupted Spring Boot 2.1.1.RELEASE 更新:我从应用程序中删除了我的JMSConfiguration.class,一切都开始工作了. @EnableJMS必须做一些覆盖某事的事情.我将系统地评论该配置类中的bean,直到找到确切的罪魁祸首.我从未想过我的JMS Active MQ配置会与我的嵌入式Tomcat服务器的SSL配置发生冲突. 我已将其缩小到以下与原因相关的JMS相关bean.如果我完全摆脱了JMS配置,那么我不会得到密码错误.看起来这些东西是无关的,但它们是某种程度的. @Bean public BrokerService broker() throws Exception { final BrokerService broker = new BrokerService(); 使用下面的配置,我在启动Spring Boot时出错.如果我删除所有的@Configuration类并启动Spring Boot,这个配置工作正常.我已经尝试过PKCS,JKS和我尝试过的文件:我已经移动了文件,没有任何乐趣.我知道密码是正确的,因为它会正常启动,如果我删除我的配置类,我可以使用443 / ssl命中服务器… server.contextPath=/my server.tomcat.additional-tld-skip-patterns=*.jar server.compression.enabled=true server.port=443 server.ssl.key-store:classpath:local-keystore.jks server.ssl.key-store-password:password server.ssl.keyStoreType:JKS server.ssl.keyAlias:tomcat 遇到错误 org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1001) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:259) at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:311) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:164) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) at com.jjkane.Application.main(Application.java:65) Caused by: java.lang.IllegalArgumentException: keystore password was incorrect at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:114) at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:85) at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:224) at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1067) at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1149) at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:561) at org.apache.catalina.connector.Connector.startInternal(Connector.java:998) ... 14 common frames omitted Caused by: java.io.IOException: keystore password was incorrect at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2108) at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:243) at java.base/java.security.KeyStore.load(KeyStore.java:1479) at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:179) at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:204) at org.apache.tomcat.util.net.jsse.JSSEUtil.getKeyManagers(JSSEUtil.java:203) at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:112) ... 20 common frames omitted java.security.UnrecoverableKeyException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: pad block corrupted 更新:此修改后出现相同的错误… server.contextPath=/my server.tomcat.additional-tld-skip-patterns=*.jar server.compression.enabled=true server.port=443 server.ssl.key-store=classpath:local-keystore.p12 server.ssl.key-store-password=tomcat server.ssl.key-password=tomcat server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias=tomcat 解决方法
您可能正在使用JDK 8u161之前的Java版本,在这种情况下,可以通过将Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files添加到Java的安装来解决此异常.当使用更长的密钥大小完成加密/解密时,通常会出现问题.充气城堡也是这个问题的解决方案.
有关JCE文件的更多详细信息,请参阅oracle站点 https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 另一种解决方案是将您的java升级到上述或更高版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |