首页 > 解决方案 > 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?

标签: javaamazon-web-servicessslssl-certificate

解决方案


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.


推荐阅读