java - AWS Java 开发工具包 SSL 证书
问题描述
我有一个 JBoss AS7 通过适用于 Java 的 AWS 开发工具包连接到 AWS,特别是连接到 S3,我有访问密钥和密钥,一切运行正常。我使用 S3 进行各种文件共享。
JBoss 的数据源连接到 AWS RDS。我已为数据源启用 SSL 加密 - 我rds-ca-2019-root.pem
在我的独立.xml 中配置了我的信任库,并且我的 RDS 数据源连接并验证 SSL 没有问题。但是,当我尝试通过 SDK 连接到 S3 时(启用了具有 RDS 证书的信任库时),我收到以下异常:
Caused by: com.amazonaws.SdkClientException: Unable to execute HTTP request: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
所以,没有启用信任库:我可以通过 SDK 连接到 S3 就好了。当我使用 RDS 证书启用信任库时:我的 SDK -> S3 连接中断。
我不知道我需要向信任库添加什么证书才能使 SDK 工作,还是我需要将 SDK 配置为以某种方式使用 TLS?
解决方案
Ognjen 的回答帮助我解决了这个问题。我遇到了同样的问题,问题是 AWS SDK 正在使用我为 RDS 连接构建的自定义信任库。我通过javax.net.ssl.trustStore
显式设置参数指定了自定义信任库。
我应用的解决方案:
我使用本文档中的脚本将其导入rds-combined-ca-bundle.pem
(如果您安装了 JDK ,$JAVA_HOME/lib/security/cacerts
您可能会在文件夹中找到此cacerts
文件。)。jre/lib/security
然后我删除了我的javax.net.ssl.trustStore
设置。然后java开始使用默认cacerts
文件,现在一切都很好。
java default truststore 的默认密码是chageit
.
推荐阅读
- java - 布尔属性如何与 createBooleanBinding 一起使用
- react-native - 卡片视图标题中的背景颜色(react-native)
- python - 如何使用python枚举一些文本文件?
- elasticsearch - 为什么kibana不显示所有搜索结果?
- html - 无法将外部样式表连接到 HTML
- javascript - 如何画一个圆圈而不是一个标记?
- javascript - NestJS:转换响应
- python - 为什么 itertools.count() 与 zip 一起使用时会消耗额外的元素?
- node.js - 请求的模块不提供导出?
- dart - 在颤振上添加 simple_permission 或 permission_handler 后出错