【问题标题】:OpenJDK on OpenShift: "NoSuchAlgorithmException: EC AlgorithmParameters not available"OpenShift 上的 OpenJDK:“NoSuchAlgorithmException:EC 算法参数不可用”
【发布时间】:2023-03-19 20:05:01
【问题描述】:

我在 OpenShift 上使用 Wildfly 8.2 (OpenJDK 1.8.0_31) 遇到了 java.security.NoSuchAlgorithmException: EC AlgorithmParameters not availableAmazonHttpClient 引发了异常)。

OpenJDK 1.8 和 ECC 似乎存在错误: https://bugzilla.redhat.com/show_bug.cgi?id=1167153

在建议的解决方法中,需要编辑 jre/lib/security/java.security 以禁用 jdk.tls.disabledAlgorithms=EC,ECDHE,ECDH。 或者删除jre/lib/ext/sunec.jar

很遗憾,我无法在 OpenShift 上执行此操作(缺少权限)。

这里最好的解决方法是什么?我可以切换到没有这个问题的 Oracle JDK(在 OpenShift 上)吗?

更新

我删除了 Sun java.security.Provider-s 并添加了 BouncyCastle:

static {
  Security.removeProvider("SunEC");
  Security.removeProvider("SUN");
  Security.removeProvider("SunJSSE");
  // ...
  Security.addProvider(new BouncyCastleProvider());
}

不幸的是,BouncyCastle 不是 JSSE 提供商 (create an SSLContext instance using a Bouncy Castle provider) 并且 SSLContext.getInstance() 失败 NoSuchAlgorithmException: TLS SSLContext not available.

我也尝试了@Rudy De Busscher 建议的答案,虽然我不赞成手动设置 env 变量,因为它是以后很容易被遗忘的东西。 相反,我将JAVA_OPTS_EXT 设置添加到$OPENSHIFT_DATA_DIR/.my_custom_env 并用source ${OPENSHIFT_DATA_DIR}.my_custom_env 加载它 .openshift/action_hooks/pre_start 钩子。 它没有用,但由于我仍然需要为 JSSE 使用 BouncyCastle,所以我放弃了这个解决方案。

幸运的是,我能够切换回 OpenJDK 1.7(通过 .openshift/markers/java7) 现在“解决”了这个问题。

【问题讨论】:

    标签: java openshift openjdk


    【解决方案1】:

    找到了解决办法。

    您可以定义一个属性文件来覆盖默认 JRE 文件 jre/lib/security/java.security 中定义的一些键

    这个文件可以在 OpenShift Gear 的 JAVA_OPTS_EXT 环境属性中指定。

    这些是我们为解决此问题而采取的步骤。

    创建文件

    • rhc ssc gearName
    • cd $OPENSHIFT_DATA_DIR
    • vi override_security.properties
    • 内容是jdk.tls.disabledAlgorithms=EC,ECDHE,ECDH
    • pwd -> 并记下(复制)刚刚创建的文件的完整路径位置。
    • 退出

    设置环境变量

    • rhc env set JAVA_OPTS_EXT=-Djava.security.properties=file:fileLocation -a gearName

    重启你的装备/应用

    • rhc 应用重启 -a gearName

    这对我们有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      相关资源
      最近更新 更多