【问题标题】:How to Configure trusted SSL keystore with Spring boot?如何使用 Spring Boot 配置受信任的 SSL 密钥库?
【发布时间】:2017-12-11 00:06:39
【问题描述】:

想在我的 Spring Boot(1.3.2.RELEASE) 应用程序中引入 HTTPS 协议(可信证书)。 为此尝试了下一个 SSL 属性:

server.ssl.trust-store=classpath:key.jks
server.ssl.trust-store-password=pass

并有错误:

Caused by: java.lang.IllegalArgumentException: Resource location must not be null
at org.springframework.util.Assert.notNull(Assert.java:115) ~[spring-core-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.util.ResourceUtils.getURL(ResourceUtils.java:131) ~[spring-core-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.configureSslKeyStore(TomcatEmbeddedServletContainerFactory.java:340) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.configureSsl(TomcatEmbeddedServletContainerFactory.java:323) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE]

在该错误中,您可以看到应该传递 configureSslKeyStore。 当我尝试使用下一组更改启动应用程序时:

server.ssl.key-store=classpath:key.jks
server.ssl.key-store-password=pass
server.ssl.trust-store=classpath:key.jks
server.ssl.trust-store-password=pass

应用程序启动成功,但无法访问 https:

所以现在我有几个问题:

  • 这种行为的原因是什么,该协议不受支持?(证书是新的并且没有过时)
  • 没有冗余属性就无法配置受信任的证书是否正确?
  • 是否有其他更方便的方式来配置受信任 SSL?

更新:

它是 JAR 文件,其中存在证书 classpath:key.jks"".

【问题讨论】:

  • 添加您将证书和匹配的私钥导入 jks 所采取的步骤。
  • 告诉我们key.jks文件在.war文件的什么位置。 NB 您不应该使用相同的文件作为密钥库和信任库。它们的用途完全不同。
  • 证书存在于 Spring Boot JAR 文件中,而不是 WAR。 “将私钥匹配到 jks 中?”你能解释一下你的意思吗?
  • “那么请告诉我们 key.jks 在 Spring Boot JAR 文件中的位置”问题是:server.ssl.trust-store=classpath:key.jks
  • 类路径:key.jks。绝对路径为:C:\project\src\main\resources\key.jks。对我的问题有影响吗?

标签: java spring-boot spring-security https ssl-certificate


【解决方案1】:

原因在我的 .jks 文件中。它是以错误的方式生成的。 这是link,您可以在其中找到正确的存储键结构。

【讨论】:

    猜你喜欢
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2018-08-18
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多