【问题标题】:webstart-maven-plugin jarsigner fails with invalid SHA1 signature file digestwebstart-maven-plugin jarsigner 因 SHA1 签名文件摘要无效而失败
【发布时间】:2023-03-25 21:09:01
【问题描述】:

我一直在努力让 webstart-maven-plugin 使用真正的证书。我确实需要帮助。

当我对 JNLP jar 进行自签名时,一切正常。 为了在启动应用程序时摆脱 Oracle 的安全警报,我们购买了一个证书。 (顺便说一句,它很贵!)

我配置了 keystone 并更改了 POM 以使用新证书签署我的应用程序,现在我得到:

[info] jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for OSGI-OPT/src/org/osgi/framework/PackagePermission.java

插件配置为:

        <plugin>
            <groupId>org.codehaus.mojo.webstart</groupId>
            <artifactId>webstart-maven-plugin</artifactId>
            <executions>
                <execution>
                    <!-- bind to phase, I prefer to call it manualls -->
                    <phase>package</phase>
                    <goals>
                        <goal>jnlp-inline</goal> <!-- use jnlp, jnlp-inline or jnlp-single as appropriate -->
                    </goals>
                </execution>
            </executions>
            <configuration>
                <excludeTransitive>false</excludeTransitive>
                <libPath>lib</libPath>
                <outputJarVersions>true</outputJarVersions>
                <dependencies>
                </dependencies>

                <jnlp>
                    <outputFile>mix.jnlp</outputFile> 
                    <mainClass>${my_main_class}</mainClass>
                </jnlp>

                <sign>
                    <keystore>${basedir}/NitryxKeyStore</keystore>
                    <keypass>${keypass}</keypass> 
                    <storepass>${storepass}</storepass>
                    <alias>codesigncert</alias>

                    <verify>true</verify> 

                    <!-- KEYSTORE MANAGEMENT -->
                    <keystoreConfig>
                        <delete>false</delete>
                        <gen>false</gen>
                    </keystoreConfig>
                </sign>

                <pack200>true</pack200>
                <gzip>true</gzip> 

                <outputJarVersions>false</outputJarVersions>

                <verbose>true</verbose>
            </configuration>
        </plugin>

当我运行“mvm clean package”时,它成功签署了许多包,如 log4j、javamail、我的程序本身,但是当它尝试签署 org.osgi.core-4.0.0.jar 时却失败了:

...
[INFO]   signing: org/osgi/service/url/URLConstants.class
[INFO]   signing: org/osgi/service/url/URLStreamHandlerService.class
[INFO]   signing: org/osgi/service/url/URLStreamHandlerSetter.class
[INFO]   signing: org/osgi/service/url/packageinfo
[debug] jarsigner executable [/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre/bin/jarsigner]
[debug] Executing: /bin/sh -c "cd /Users/rodrigo/Documents/Nitryx/Technical/Projects/Nitryx-Mix/mix-wstart/target/jnlp && /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre/bin/jarsigner -verify -verbose /Users/rodrigo/Documents/Nitryx/Technical/Projects/Nitryx-Mix/mix-wstart/target/jnlp/lib/org.osgi.core-4.0.0.jar"
[info] jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for OSGI-OPT/src/org/osgi/framework/PackagePermission.java

我花了几个小时在谷歌上搜索,似乎这与签署两次 jar 或 pack200 错误有关。如果您能提供任何帮助,我将不胜感激。

Tks

【问题讨论】:

  • 你使用哪个版本的webstart-maven-plugin
  • 我解决了这个问题,手动打开有问题的 .jar 并删除清单
  • 注意-对于基于 maven 的项目,请仔细查看 排序。确保 jar 仅在混淆后签名!

标签: java maven jnlp jarsigner


【解决方案1】:

我手动打开有问题的 .jar 并删除清单解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 2017-10-14
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 2021-05-17
    • 2014-06-07
    • 2020-05-06
    相关资源
    最近更新 更多