【问题标题】:Jarsigner issue with jre/lib/ext removal移除 jre/lib/ext 的 Jarsigner 问题
【发布时间】:2018-05-04 21:58:15
【问题描述】:

根据这篇文章:https://blogs.oracle.com/java-platform-group/planning-safe-removal-of-under-used-endorsed-extension-directories

Java 9 中删除了 jre/lib/ext。

我的问题是我正在使用 Jarsigner,它在以前的 Java 版本中在 jre/lib/ext 文件夹中找到了我的提供程序 jar。

jarsigner -tsa timestamp.digicert.com -verbose -keystore NONE -storetype PKCS11 
      -storepass null -providername <MY_PROVIDER_NAME> <JAR_FILE> <CERTIFICATE_NAME> 

我该如何解决?

【问题讨论】:

  • &lt;JAR_FILE&gt; 不足以指定要签名的 jar。 jre/lib/ext 删除对此有何影响?
  • 是要签名的 JAR 文件。在 jre/lib/ext 我把我的 Java 安全提供程序 JAR。

标签: java java-9 jarsigner


【解决方案1】:

changes to the installed JDK/JRE image 带来运行时映像,其中包括目录,包括 -

conf — 包含 .properties、.policy 和其他类型的文件 旨在由开发人员、部署人员和最终用户编辑。这些 文件以前在 lib 目录或其子目录中找到。


JDK9 中的java.security 文件(位于.../Home/conf/security 下)在默认提供程序列表中列出了 SunPKCS11 提供程序

security.provider.13=SunPKCS11

#SunPKCS11 Configuration 在参考指南下详细说明了如何添加存在于 JDK 的 jdk.crypto.cryptoki 模块中的提供程序。

因此,理想情况下,也不需要在 Java9 中配置 sunpkcs11 提供程序的路径。


要添加和示例如何将提供程序捆绑到模块中,请参阅JEP 220: Modular Run-Time Images

Security-policy 文件和其他使用 CodeSource API 可以使用 jrt 用于命名特定模块以授予权限的 URL。 例如,现在可以识别椭圆曲线密码学提供程序 通过 jrt 网址

jrt:/jdk.crypto.ec 

目前被授予全部的其他模块 权限但实际上并不需要它们可以微不足道 去特权,即精确地给予他们所需的权限。

【讨论】:

    【解决方案2】:

    我终于成功解决了这个问题,基于https://docs.oracle.com/javase/9/security/howtoimplaprovider.htm#JSSEC-GUID-7C304A79-6D0B-438B-A02E-51648C909876

    需要执行以下操作(仅指定 Java9 的新功能):

    按照步骤 4 并添加模块声明:

    module com.foo.MyProvider {
        provides java.security.Provider with p.MyProvider;
        requires java.security.jgss;
    }
    

    当运行 Jarsigner 时,使用模块路径运行:

    jarsigner -J--module-path -J<PATH_TO_PROVIDER_JAR> -J--add-modules -J<MODULE_NAME>
    -tsa timestamp.digicert.com -verbose -keystore NONE -storetype PKCS11 -storepass null -providername <MY_PROVIDER_NAME> <JAR_FILE> <CERTIFICATE_NAME> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      相关资源
      最近更新 更多