Problema
El proveedor de Sun PKCS#11 no es compatible con la plataforma de 64 bits de Windows. Como resultado, la funcionalidad HSM no es compatible con LiveCycle ES que se ejecuta en Windows 64 con el JDK de Sun.
Solución
Para proporcionar la funcionalidad HSM para LiveCycle ES que se ejecuta en Windows 64, cree un componente de firmas SPI que pueda acceder a una credencial HSM. Este componente crea un servicio LiveCycle ES que implementa el modelo de firmas SPI. El servicio de firma delega la firma al componente SPI, que a su vez delega la llamada a un servicio web seguro de HSM.
Para permitir que LiveCycle ES que ejecuta la plataforma de 64 bits de Windows firme o certifique un documento PDF con una credencial HSM, siga estos pasos:
-
Instale e implemente LiveCycle ES en la plataforma de 64 bits de Windows.
-
Implemente el servicio HSM SPI adobe-remoteHSMSPI-dsc.jar. Este archivo jar está disponible en la carpeta [LiveCycleInstallRoot] \LiveCycle_ES_SDK\misc\Signatures.
-
Cree una carpeta (por ejemplo, RemoteHSMWebservice) en el mismo equipo o en otro equipo (un ordenador con Windows 32).
-
Copie los siguientes archivos jar a la carpeta RemoteHSMWebservice: bcmail-jdk15-135.jar, bcprov-jdk15-135.jar, jsafeFIPS.jar, y RemoteHSMWS.jar.
-
Cree un certificado SSL y un almacén de claves Java en RemoteHSMWebservice. Habilite la comunicación entre LiveCycle ES y el servicio RemoteHSMwebservice utilizando HTTPS para proteger el valor del PIN de HSM.
-
Configure JAVA_HOME para que haga referencia al Sun JDK 1.6 de 32 bits.
-
Ejecute el RemoteHSMWS.jar como una aplicación independiente usando el siguiente comando:
java -jar RemoteHSMWS.jar -b https://<nombre del ordenador que ejecuta HSM
webservice>:<port>/hsmws -k <ruta al almacén de claves de java> -p <contraseña del almacén de claves> -n 10
-
Instale el cliente HSM en el equipo que ejecuta el servicio web de HSM remoto.
-
Ejecute el servicio de firma utilizando el siguiente código para firmar o certificar un documento:
HashMap prop = new HashMap();
prop.put("hsmAlias", Alias of HSM Profile in the LiveCycle ES Truststore);
prop.put("hsmWSEndPt", WSDL location given above, that is https://<machinename>:<port>/hsmws?wsdl);
Cert cert = provide the certificate which is provided in the HSM profile
Credential spiCred =Credential.getInstance(cert.getEncoded(),"RemoteHSMSPIService");
spiCred. setSPIProperties(prop);
Información adicional
Para obtener información sobre cómo firmar un documento utilizando un componente SPI, consulte la sección "Comprobación del gestor de firmas" en Programación con LiveCycle ES.