java - 如何使用 Spring boot 配置受信任的 SSL keystore ?

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

想要将 HTTPS 协议(protocol)(受信任的证书)引入到我的 Spring Boot(1.3.2.RELEASE) 应用程序中。 为此,尝试了以下 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 无法访问: enter image description here

现在我有几个问题:

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

更新:

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

最佳答案

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

关于java - 如何使用 Spring boot 配置受信任的 SSL keystore ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958116/

相关文章:

java - 将引用值添加到 Enum

java - 通过 RTMP 从 Java OpenCV 流式传输

java - Spring boot - 添加 JSTL 依赖会导致问题

java - Spring MVC - 上传文件显示客户端发送的请求在语法上不正确

java - 为什么添加spring security后主页无法访问

java - 如何在 Java 中将 2D 数组插入到空 3D 数组中?

java - 从外部应用程序调用 portlet 操作

java - 如何在Spring Boot中当前运行的线程上运行@schedule

java - 返回具有不同 Http 状态的 Rest CompletableFuture

java - Spring Security 忽略多个 HTTP 配置