问题描述
如何在一个Spring Boot应用程序中同时使用cacerts和jks。
现在我正在应用程序启动时通过cacert脚本使用外部加载
-Djavax.net.ssl.trustStore="/opt/app/cacerts" \
现在要与另一个microsevis一起使用,我需要配置另一个SSL。我得到了一个用于设置ssl的jks文件
解决方法
似乎默认情况下,春季启动是在启动过程中加载受jdk信任的证书。尝试使用以下vm参数运行您的应用程序:-Djavax.net.debug=SSL,keymanager,trustmanager,ssl:handshake
,同时进行如下application.properties文件设置
我已经通过基本设置进行了尝试,并且仅配置了我的应用程序属性文件,请参见下面的内容。
server:
port: 8443
ssl:
enabled: true
key-store: classpath:identity.jks
key-password: secret
key-store-password: secret
trust-store: classpath:truststore.jks
trust-store-password: secret
client-auth: need
启动应用程序时,我在日志中看到,该日志首先加载具有93个受信任证书和后缀的默认jdk信任库(证书),它还将加载密钥条目和另一个受信任证书。这两个条目源自我的密钥库和信任库。因此,您无需以编程方式组合jdk信任库和您自己的信任库,并将其提供给spring。因此,您可以尝试删除-Djavax.net.ssl.trustStore="/opt/app/cacerts" \
行并仅通过引用自定义jks文件作为信任库来调整application.properties文件吗?