java - 从 1.3.x 升级到 1.4.0 后,Spring boot ssl 配置损坏

标签 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 版本的 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 协议(protocol)版本或密码套件。当服务器需要不再被认为是安全的 RC4 时,很可能会导致这种情况。

Firefox 也有类似的错误。

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

提前致谢 干杯!

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

最佳答案

感谢这个 Boot's Tomcat SSLsample,我设法解决了这个问题由 Andy 提供

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 仅仅 服务器是不够的。 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

现在它按预期工作了:) 希望这个答案对其他人有帮助。

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

关于java - 从 1.3.x 升级到 1.4.0 后,Spring boot ssl 配置损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38991385/

相关文章:

java - Mockito 在调用 getter 时设置字段

java - SoapUI - 以 JSON 格式发送登录详细信息

c# - System.Net.HttpWebRequest.GetResponse() 错误 "ResponceSystem.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel"

ruby-on-rails - Ruby on Rails WEBrick SSL 连接错误

java.lang.IllegalArgumentException : Result Maps collection does not contain value for a certain mapper 异常

php - 使用 PHP 和 IMAP 连接到 Gmail

java - IntelliJ 运行/调试配置 - 启动序列之前 : Starting with Tomcat Server doesn't progress

java - 对于没有无参数构造函数的类,应该如何扩展 Number?

java - 在java中抛出规则

java - maven 存储库中不存在 Spring Boot quickstart?