如何使用cacerts和jks trustore Togeser,

问题描述

如何在一个Spring Boot应用程序中同时使用cacerts和jks。

现在我正在应用程序启动时通过cacert脚本使用外部加载

-Djavax.net.ssl.trustStore="/opt/app/cacerts" \

现在要与另一个microsevis一起使用,我需要配置另一个SSL。我得到了一个用于设置ssl的jks文件

如何添加一个受托人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文件吗?