我正在尝试让 AWS Secrets Manager 在较旧的 Java 7 平台上工作。不幸的是,我们现在锁定在 Java 7 上。
我遇到的问题是 Java 7 在 SSL 方面存在一些安全问题,并且大多数现代 Java 平台都在使用更新的 cipherSuites。因此我得到了错误
javax.net.ssl.SSLHandshakeException:没有可协商的密码套件
在其他接口中,我已经能够通过在 SSL 套接字上执行 .setEnabledCipherSuites 来解决该问题。
这里的问题是 Secrets Manager 客户端没有公开套接字 (AFAICT),也没有公开 SocketFactory。我一直在尝试创建一个新的 SSLContext 包装股票 SSLContext 将提供自定义 SocketFactory 但创建和安装自定义 SSLContext 已被证明是相当复杂的。
在我最终拉出其余的头发之前,有没有更简单的方法可以做到这一点?
AWS Secrets Manager 在后台使用 Apache HTTP 客户端 (httpclient-4.5.7)。是否有一种将 Apache 客户端与自定义 Socket、SocketFactory 或 SSLContext 挂钩的静态方式?一个不需要访问 HTTPClient 对象(也没有公开)的对象。