java - Spring Boot - 无法加载 keystore 类型 [PKCS12]

我有一个 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/

相关文章:

javascript - 多个实例或子包中的 Axios 默认 header

powershell - 'Install-Module' : is not recognized

java - Spring/JPA 多线程死锁

php - 在 Laravel 5 迁移中更新表并添加数据

python - Spark 公平调度不起作用

angular - 如何将 与路由一起使用?

android - fragment 中 RecyclerView 的内容仅在选项卡之间移动后显示

ajax - Spring Security + Keycloak - 如何结合 "Access T

android - 在 ViewPager 中加载具有不同数据的相同 fragment

python - 如何收集 Django 的钱