Firmar un JAR


para firmar un jar es muy sencillo, basta tener la JDK, un “key store” con su user/pass/alias/private pass.

A la hora de firmar un jar lo que se hace es:
1.- generar un hash de cada clase en SHA y lo agrega al manifest de la siguiente manera

Manifest-Version: 1.0
Implementation-Vendor: Gobierno de Espana
Implementation-Title: es.gob.afirma
Implementation-Version: build01
Application-Library-Allowable-Codebase: *
Specification-Vendor: Gobierno de Espana
Application-Name: Applet Cliente Afirma
Name: es/gob/afirma
Permissions: all-permissions
Specification-Title: Applet Cliente Afirma
Specification-Version: 3.3.1 u5
Caller-Allowable-Codebase: *
Codebase: *

Name: org/bouncycastle/jcajce/provider/digest/Whirlpool$Digest.class
SHA-256-Digest: FKks3RbQC/oJ2jlI2P9GKwYkEQdZNBOUW6dFI8uVdmM=

...

2.- Agrega unos ficheros que contienen el certificado, con el que se ha firmado, en la misma carpeta donde esta el MANIFEST.MF

En consola

jarsigner -keystore keystore.jks -storepass keystore_pass -keypass keystore_pass -signedjar jarsfirmados/LO_QUE_SEA.jar -verbose jars/LO_QUE_SEA.jar keystore_alias

Maven

			  <plugin>
				    <groupId>org.apache.maven.plugins</groupId>
				    <artifactId>maven-jarsigner-plugin</artifactId>
				    <version>1.2</version>
				    <executions>
				        <execution>
				            <id>sign</id>
				            <goals>
				                <goal>sign</goal>
				            </goals>
				        </execution>
				    </executions>
				    <configuration>
				        <keystore>/path/to/testkeystore</keystore>
				        <alias>myalias</alias>
				        <storepass>depo.root</storepass>
				    </configuration>
				</plugin>
Anuncios
Firmar un JAR