【问题标题】:How use cacerts and jks trustore togeser,如何使用 cacerts 和 jks trustore togeser,
【发布时间】:2020-11-08 15:30:44
【问题描述】:

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

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

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

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

如何添加另一个trustore jks

【问题讨论】:

    标签: java spring-boot ssl jks


    【解决方案1】:

    看起来 spring boot 在启动期间默认加载 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
    

    当启动我的应用程序时,我在日志中看到 spring 首先加载了默认的 jdk 信任库(cacerts)和 93 个受信任的证书,然后它还加载了密钥条目和另一个受信任的证书。这两个条目来自我的密钥库和信任库。因此,您无需以编程方式将 jdk 信任库和您自己的信任库结合起来并将其提供给 spring。那么您能否尝试删除您的 -Djavax.net.ssl.trustStore="/opt/app/cacerts" \ 行并调整您的 application.properties 文件,仅将您的自定义 jks 文件作为信任库引用?

    【讨论】:

    • @Александр 你为什么不接受这个出色的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2021-11-18
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    相关资源
    最近更新 更多