Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从1.3.x升级到1.4.0后,Spring引导ssl配置中断_Java_Spring_Ssl_Spring Boot - Fatal编程技术网

Java 从1.3.x升级到1.4.0后,Spring引导ssl配置中断

Java 从1.3.x升级到1.4.0后,Spring引导ssl配置中断,java,spring,ssl,spring-boot,Java,Spring,Ssl,Spring Boot,我的ssl配置有问题,我的配置如下: server.port=8449 # self signed cert with CN=localhost used for https method tests server.ssl.key-store=keystore.p12 server.ssl.key-password=password server.ssl.key-alias=some-alias server.ssl.key-store-type=PKCS12 如果与1.3.7版本的sprin

我的ssl配置有问题,我的配置如下:

server.port=8449
# self signed cert with CN=localhost used for https method tests
server.ssl.key-store=keystore.p12
server.ssl.key-password=password
server.ssl.key-alias=some-alias
server.ssl.key-store-type=PKCS12
如果与1.3.7版本的spring boot一起使用,则一切正常。如果在客户端升级到1.4.0,我会得到:

javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:700)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:696)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:448)
以及从chrome调用ssl端口的结果:

客户端和服务器不支持通用SSL协议版本或密码套件。这可能是由于服务器需要RC4(不再被认为是安全的)时造成的

Firefox也出现了类似的错误

正如我所说,唯一不同的配置是spring启动版本。我是否在配置中遗漏了一些东西,以便可以与较新版本的spring boot一起使用

提前谢谢 干杯


另外,我对ssl相关主题不是很了解,所以请尽量简单地解释一下。

多亏了

我的猜测(我可能错了)是Tomcat 8.5.4需要指定的
server.ssl.key store password=password
仅指定
server.ssl.key password
是不够的,因此在更新配置后,我提出了如下建议:

server.port=8449
# self signed cert with CN=localhost used for https method tests
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=changeit
server.ssl.key-alias=some-alias
server.ssl.key-password=changeit
server.ssl.key-store-type=PKCS12
现在它按预期工作:) 希望这个答案对其他人有帮助


是的,我知道对特定密钥和常规存储使用相同的密码是不好的,但这只是一个测试密钥存储。

对我来说,所有东西都在我的本地机器上工作,但是当我尝试在Linux服务器(Amazon AWS EC2)上运行Spring Boot服务器时,我遇到了相同的错误。我在使用SpringBoot1.3.x时没有遇到这个错误

我可以通过安装oraclejdk而不是服务器上预先安装的openjdk来解决这个问题


这是我遵循的指南:

您不需要在1.4中以不同的方式配置SSL。我刚刚试过,它可以与Safari和Chrome一起使用。你能提供一个重现问题的小示例吗?感谢示例链接,它帮助我解决了问题:)问题在于它是如何配置的,在Tomcat 8.0.x中,配置工作得很好,但在Tomcat 8.5.4中,似乎(也许我错了)您需要明确指定密钥存储密码,而不是像我的示例中那样仅指定密钥密码。我有一个非常类似的问题,当Spring Boot从1.3升级到1.4时,我丢失了所有ECDHE密码,只剩下DHE密码。如果我将Tomcat降级到8.0.x,事情就会恢复正常。我指定了密钥库和密钥密码,但都没有用。非常感谢您分享此信息。我倾向于忘记如何创建密钥库,实际上有两个不同的密码,如果密钥库的密码错误,则会出现异常,但如果另一个密码丢失,则不会出现警告、错误,日志文件中也不会出现任何内容。
server.port=8449
# self signed cert with CN=localhost used for https method tests
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=changeit
server.ssl.key-alias=some-alias
server.ssl.key-password=changeit
server.ssl.key-store-type=PKCS12