0

jar ファイルの署名に問題があります。META-INF ディレクトリにいくつかのファイルがあり、jarsigner を使用すると署名されませんが、署名されていないエントリが原因で検証が失敗します。

jar を作成していないため、その構造を変更したり、ファイルを削除したりすることはできません。

META-INF から署名されたファイルを取得するには?

以下は、JAR ファイルを操作している build.xml ファイルの一部です。

1345           <jar destfile="${proj.build.webui.war.dir}/name.jar"
1346               update="true">
1347               <manifest>
1348                   <attribute name="Permissions"
1349                       value="all-permissions"/>
1350                   <attribute name="Codebase" 
1351                       value="*"/>
1352                   <attribute name="Trusted-Library"
1353                       value="true"/>
1354               </manifest>
1355           </jar>
1356           <!-- sign the jar files -->
1357           <chmod perm="u+x">
1358               <fileset dir="${proj.buildtools.dir}">
1359                   <include name="DsJarSigner"/>
1360               </fileset>
1361           </chmod>
1362           <signjar destDir="${proj.build.webui.war.dir}"
1363               alias="encryptedAlias"
1364               keystore="${proj.buildtools.dir}/keystore.jks"
1365               storepass="encryptedPassword"
1366               executable="${proj.buildtools.dir}/DsJarSigner"
1367               preservelastmodified="true" >
1368               <path>
1369                   <fileset dir="${proj.build.webui.war.dir}" includes="name.jar" />
1370               </path>
1371               <flattenmapper />
1372           </signjar>

DsJarSigner は、jarsigner を呼び出す単純な Java プログラムです。

4

1 に答える 1

0

jarsigner が のファイルをスキップしているようですMETA-INF。別の署名者を使用する以外にできることはあまりありません。たとえば、OpenJDK 8 の jarsigner は、「署名関連」と見なされる一部のファイルを からスキップしますが、他のファイルはスキップしません。META-INF私は、Oracle JDK の jarsigner が同じことをしているのを観察しました。

于 2014-12-29T15:56:27.503 に答える