我遇到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 boot版本。我在配置中遗漏了什么,所以它可以用于更新版本的弹簧靴?
提前致谢 干杯!
P.S。我对ssl相关主题知之甚少,所以请尝试解释一下这个问题。
答案 0 :(得分:3)
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
我的猜测(我可能错了)是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
现在它按预期工作:) 希望这个答案有助于其他人。
P.S。是的,我知道对于特定密钥和一般商店使用相同的密码是不好的,但这只是一个测试密钥库。
答案 1 :(得分:0)
对我来说,一切都在我的本地机器上运行,但是当我尝试在我的Linux服务器(Amazon AWS EC2)上运行Spring Boot Server时,我得到了同样的错误。使用Spring Boot 1.3.x时,我没有收到此错误。
我能够通过安装Oracle JDK而不是预先安装在服务器上的Open JDK来解决这个问题。
这是我遵循的指南:https://gist.github.com/rtfpessoa/17752cbf7156bdf32c59