java - 如何使用 cacerts 和 jks trustore togeser,
问题描述
如何在一个 Spring Boot 应用程序中同时使用 cacerts 和 jks。
现在我在应用程序启动时使用 cacert 脚本进行外部加载
-Djavax.net.ssl.trustStore="/opt/app/cacerts" \
现在要使用另一个 microsevis,我需要配置另一个 SSL。我得到了一个用于设置 ssl 的 jks 文件
如何添加另一个委托人 jks
解决方案
看起来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 文件作为信任库引用?
推荐阅读
- python - 如何在不丢失序列的情况下关闭 matplotlib 图形?
- reactjs - onClick 不适用于 Material-UI Tooltip 中的 Popper 组件
- oracle - JdbcPagingItemReader 无法读取所有数据
- css - iOS Chrome 不尊重缺口的安全区域插入
- angular - Angular如何将数据传递给嵌套路由组件
- ssis - 从远程计算机上的 bat 文件运行 dtsx 包
- amazon-s3 - 在本地使用 terraform 从 S3 下载文件
- acumos - 尝试使用 AIO 安装 Acumos Clio 时出错
- wordpress - 在 Vue 中解析 v-html 内容
- events - 更新文档时未触发 Couchbase Webhook url