ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
256 stars 120 forks source link

Windows: certificados instalados con protección segura de clave privada no se muestran #177

Open mbenayas opened 3 years ago

mbenayas commented 3 years ago

En un equipo con Windows 10 1909 Enterprise si al importar el certificado se selecciona la opción "Habilitar protección segura de clave privada. Si habilita esta opción, se le avisará cada vez que la clave privada sea usada por una aplicación."

image

Autofirma no muestra ese certificado al firmar. Otros programas, incluidos progrmas en java si que permiten seleccionar ese certificado para firmar.

Adjunto el fichero AUTOFIRMA.afirma.log.xml. La linea correspondiente la certificado en cuestión es:

Se ha ocultado un certificado (emitido por 'AC Sector P.blico') por no soportar operaciones de clave privada

Parece que al obtener el listado de certificados del almacén de certificados se interpretara que no se dispone de la clave privada asociada al certificado cuando no es así.

mbenayas commented 3 years ago

Por cierto ocurre lo mismo si al importar se marca la opción ""Proteger la clave privada mediante security(Non-exportable) basada en virtualizado.

image

mbenayas commented 3 years ago

Adjunto el fichero con el log de AUTOFIRMA AUTOFIRMA.afirma.log.xml.zip

imartinezortiz commented 3 years ago

A mí me sucede lo mismo (y posiblemente a otros #165).

Por dar más detalles, me acaba de pasar tras renovar un certificado (abril 2021) con la aplicación de la FNMT para el Sector Público. La renovación fue exitosa y el certificado aparecía en el almacén de windows y podía firmar sin problemas con Autofirma, validar el certificado en Valide, etc.. No obstante el problema en ese momento era que NO me pedía la contraseña. Tras borrar el certificado y volver a importarlo, seguía sin solicitar la contraseña antes de firmar el documento. Tampoco me pedía la contraseña para firmar con Acrobat.

Siguiendo las instrucciones de esta página, he vuelto a importar el certificado y ahora sí que se pide la contraseña al firmar con Acrobat, logarme con Cl@ve (también solicitando contraseña), pero el certificado NO aparece en la lista de certificados que Autofirma obtiene de W10. No obstante, si cargo el certificado desde el .p12 en Autofirma sí que lo reconoce y puedo firmar.

pucherot commented 3 years ago

A mi me pasaba lo mismo y he encontrado una solución: SUSTITUIR EL JRE QUE VIENE POR DEFECTO EN AUTOFIRMA.

Sustituyendo el JRE por defecto he conseguido que lea bien el contenedor de certificados de Windows.

Los pasos que yo he seguido:

1 - Instala un JRE alternativo y actualizado, p.e. AdoptOpenJDK (ahora Adoptium) : OpenJDK JRE 11.0 (LTS) 64 bits: https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7/OpenJDK11U-jre_x64_windows_hotspot_11.0.12_7.msi

2 - Renombra el directorio del JRE instalado por defecto por Autofirma ren "C:\Program Files\AutoFirma\AutoFirma\jre.original" jre.original

3 - Copia el JRE de OpenJDK a portafirmas xcopy "C:\Program Files\Eclipse Foundation\jre-11.0.12.7-hotspot" "C:\Program Files\AutoFirma\AutoFirma\jre" /e /i

Para versión de 32 bits sobre sistemas de 64 bits usa estos links y comandos: OpenJDK JRE 11.0 (LTS) 32 bits: https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7.1/OpenJDK11U-jre_x86-32_windows_hotspot_11.0.12_7.msi

ren "C:\Program Files (x86)\AutoFirma\AutoFirma\jre.original" jre.original
xcopy "C:\Program Files (x86)\Eclipse Foundation\jre-11.0.12.7-hotspot" "C:\Program Files (x86)\AutoFirma\AutoFirma\jre" /e /i

Nota: No useis la versión 17 de OpenJDK, es muy nueva y AutoFirma no la reconoce como compatible.

Espero que os funcione.

m16321 commented 2 years ago

He sustituido la carpeta jre de Autofirma con la descargada de Eclipse y sigue sin leer mi certificado protegido con contraseña.

waltermelow commented 2 years ago

A mi me pasaba lo mismo y he encontrado una solución: SUSTITUIR EL JRE QUE VIENE POR DEFECTO EN AUTOFIRMA.

Sustituyendo el JRE por defecto he conseguido que lea bien el contenedor de certificados de Windows.

Los pasos que yo he seguido:

1 - Instala un JRE alternativo y actualizado, p.e. AdoptOpenJDK (ahora Adoptium) : OpenJDK JRE 11.0 (LTS) 64 bits: https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7/OpenJDK11U-jre_x64_windows_hotspot_11.0.12_7.msi

2 - Renombra el directorio del JRE instalado por defecto por Autofirma ren "C:\Program Files\AutoFirma\AutoFirma\jre.original" jre.original

3 - Copia el JRE de OpenJDK a portafirmas xcopy "C:\Program Files\Eclipse Foundation\jre-11.0.12.7-hotspot" "C:\Program Files\AutoFirma\AutoFirma\jre" /e /i

Para versión de 32 bits sobre sistemas de 64 bits usa estos links y comandos: OpenJDK JRE 11.0 (LTS) 32 bits: https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7.1/OpenJDK11U-jre_x86-32_windows_hotspot_11.0.12_7.msi

ren "C:\Program Files (x86)\AutoFirma\AutoFirma\jre.original" jre.original
xcopy "C:\Program Files (x86)\Eclipse Foundation\jre-11.0.12.7-hotspot" "C:\Program Files (x86)\AutoFirma\AutoFirma\jre" /e /i

Nota: No useis la versión 17 de OpenJDK, es muy nueva y AutoFirma no la reconoce como compatible.

Espero que os funcione.

Funciona a la perfección. Muchas gracias @pucherot!

rafaelmembrives commented 1 year ago

A mi me pasaba lo mismo y he encontrado una solución: SUSTITUIR EL JRE QUE VIENE POR DEFECTO EN AUTOFIRMA.

Sustituyendo el JRE por defecto he conseguido que lea bien el contenedor de certificados de Windows.

Los pasos que yo he seguido:

1 - Instala un JRE alternativo y actualizado, p.e. AdoptOpenJDK (ahora Adoptium) : OpenJDK JRE 11.0 (LTS) 64 bits: https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7/OpenJDK11U-jre_x64_windows_hotspot_11.0.12_7.msi

2 - Renombra el directorio del JRE instalado por defecto por Autofirma ren "C:\Program Files\AutoFirma\AutoFirma\jre.original" jre.original

3 - Copia el JRE de OpenJDK a portafirmas xcopy "C:\Program Files\Eclipse Foundation\jre-11.0.12.7-hotspot" "C:\Program Files\AutoFirma\AutoFirma\jre" /e /i

Para versión de 32 bits sobre sistemas de 64 bits usa estos links y comandos: OpenJDK JRE 11.0 (LTS) 32 bits: https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.12%2B7.1/OpenJDK11U-jre_x86-32_windows_hotspot_11.0.12_7.msi

ren "C:\Program Files (x86)\AutoFirma\AutoFirma\jre.original" jre.original
xcopy "C:\Program Files (x86)\Eclipse Foundation\jre-11.0.12.7-hotspot" "C:\Program Files (x86)\AutoFirma\AutoFirma\jre" /e /i

Nota: No useis la versión 17 de OpenJDK, es muy nueva y AutoFirma no la reconoce como compatible.

Espero que os funcione.

Muchas gracias, nuestros clientes que usan certificados centralizados a través de Viafirma Fortress Desktop tienen el mismo problema y actualizando la JRE sí que se muestran los certificados.

¿Hay alguna previsión de actualizar la versión de la JRE?

Muchas gracias.