我有一个 Spring Boot web 项目, 我正在尝试使用雇主提供的证书设置 SSL。
PFX 文件目前工作正常,可以在独立 Tomcat 上使用以下配置实现 SSL:
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" enableLookups="false"
disableUploadTimeout="true" keystoreFile="server.pfx"
keystoreType="PKCS12" keystorePass="secret"
acceptCount="100" scheme="https" secure="true" SSLEnabled="true"
clientAuth="false"
sslProtocol="TLS" />
在 Spring Boot 中,对于嵌入式 Tomcat,我使用以下 application.properties
:
server.port=8088
security.require-ssl=true
server.ssl.enabled=true
server.ssl.key-password=secret
server.ssl.key-store=classpath:server.pfx
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=1
当我启动项目时,我收到错误消息
Caused by: java.io.IOException: Failed to load keystore type [PKCS12] with path [file:/Users/user/workspace/tracking/target/classes/server.pfx] due to [PKCS12 not found]
命令 keytool -list -keystore/Users/user/workspace/tracking/target/classes/server.pfx'
返回
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
1, 15-Mar-2018, PrivateKeyEntry, Certificate fingerprint (SHA1): F8:A0:CF:A6:AF:B4:ED:53:A0:79:25:03:04:D9:79:F0:FC:B2:49:DF
我应该为 server.ssl.key-store-type
使用不同的值吗?
更新
我也尝试更改为 server.ssl.key-store-type=JKS
但后来我得到:
IllegalArgumentException: Private key must be accompanied by certificate chain
有没有解决这些问题的方法?
最佳答案
聚会为时已晚,但我遇到了类似的问题。
我试图将 Bouncy CaSTLe 的 keystore 添加到我的 Spring 应用程序中:
server.ssl.key-store-type=BCFKS
并且我的应用总是出于某种原因切换回 PKCS12
。
我通过更改属性名称修复了它:
代替 server.ssl.key-store-type=BCFKS
我添加了server.ssl.keyStoreType=BCFKS
https://stackoverflow.com/questions/49294011/