AWS Java SDK SSL 证书

Ogn*_*šić 5 java ssl ssl-certificate amazon-web-services

我有一个 JBoss AS7 连接到 AWS,特别是通过适用于 Java 的 AWS SDK 连接到 S3,我拥有访问权限和密钥,一切都运行良好。我使用 S3 进行各种文件共享。

JBoss 的数据源连接到 AWS RDS。我已经为数据源启用了 SSL 加密 - 我rds-ca-2019-root.pem在standalone.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?

Ogn*_*šić 1

所以我找出了问题所在:没有为我的 jboss 定义任何类型的自定义信任库,这意味着 AWS SDK 从$JAVA_HOME/lib/security/cacerts. 定义我自己的信任库(缺少 cacerts 信任库中的所有证书) - 意味着 AWS SDK 无法获取常规证书。

因此,为了解决这个问题:我将我的导入rds-ca-2019-root.pem到上面提到的 cacerts 文件中,并将其链接为我的standalone.xml 中的服务器信任库。