想要将 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
现在我有几个问题:
- 出现这种行为的原因是什么?该协议(protocol)不受支持?(证书是最新的且未过时)
- 如果没有多余的属性,就无法配置受信任的证书,这是否正确?
- 是否有其他更方便的方法来配置可信 SSL?
更新:
它是 JAR 文件,证书存在于其中 classpath:key.jks""。
最佳答案
原因在我的 .jks 文件中。它是以错误的方式生成的。 这是link您可以在其中找到正确的存储 key 结构。
关于java - 如何使用 Spring boot 配置受信任的 SSL keystore ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958116/