Error firmar: No se ha podido conectar con AutoFirma en Chrome y Edge 98.

Desde hace unos días, muchos de nuestros clientes han tenido problemas firmando en instituciones de la administración pública de toda España con Chrome y, un poco más tarde, con Edge.
A esto hay que sumar los problemas con Lexnet de la semana pasada.

En este caso, las personas que iban a firmar en una web con Autofirma, en el último paso del proceso, al ir a firmar, les daba un error:

Error firmar: No se ha podido conectar con AutoFirma

La razón de este error, es que Chrome, y posteriormente Edge (basado en Chrome), desde las versiones 98 en adelante, han realizado unos cambios que bloquean las peticiones de CORS de estas administraciones. El problema es que nosotros podemos actualizar una parte de la solución (Autofirma), pero las administraciones deben actualizarse. Y ellas van lentas…muy lentas. Podéis ver más información aquí.

Solución.

Chrome

Por lo tanto podemos hacer lo siguiente.

Nota: este arreglo supone volver el navegador menos seguro. Es un fallo de seguridad (pero tenemos que firmar). Recomiendo deshacer el cambio una vez firmado, si no se va a usar más, o estar atento y, en cuanto se solucione, revertir el cambio.

  • Podríamos usar Internet Explorer…pero me parece una solución muy insegura.
  • Podríamos usar Firefox, pero su almacén de certificados es propio, y tendríamos que importar los certificados.
  • Podrías volver Chrome a una versión anterior…pero de nuevo no me parece una solución deseable.
  • Actualiza a la última versión de Autofirma (intenta tenerlo siempre actualizado). Autofirma, a partir de la 1.7.2, ya es compatible con Chrome 98. Pero como decimos, falta la parte de las administraciones.
  • Mientras las administraciones se ponen al día, tenemos que desactivar una opción de seguridad de Chrome (en Edge sería similar).
    Cuidado, esto es un parche. cuando se solucione habría que desactivarlo. Pero es que muchos usuarios tiene obligaciones con las administraciones y no pueden esperar.
    Lo que hay que hacer (en Windows) es crear un fichero, por ejemplo con nombre autofirma_98.reg y añadir estas líneas:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"InsecurePrivateNetworkRequestsAllowed"=dword:00000001

Haces doble clic en el fichero, se cambia esta línea del registro y debería funcionar. Si no, cambiad esa entrada de registro a mano (creadla y ponedla a 1).

También podéis cambiarla poniendo en el navegador:

chrome://flags/

Y podéis poner Block insecure private network requests en Enabled (luego podéis quitarlo desde aquí).

Podéis comprobar que está hecho escribiendo en Chrome (donde escribes las direcciones):

chrome://policy/

Como decimos, un parche provisional….pero es que hay que trabajar.
Más información.

Cómo revertir el cambio realizado.

Para quitar lo que se ha hecho en el navegador, sólo hay que ir al editor de registro y cambiar ese valor cambiado de 1 (que hemos puesto) a 0 (deshabilitado).

O cambiar el fichero por

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"InsecurePrivateNetworkRequestsAllowed"=dword:00000000

Edge.

Para Edge podéis poner:

edge://flags/#block-insecure-private-network-requests

Y veréis una opción para habilitar y deshabilitar la nueva opción llamada Block insecure private network requests.

Habilitadla para la firma, y deshabilitadla luego.

También podéis hacerlo como en el caso de Chrome con el registro con:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge]
"InsecurePrivateNetworkRequestsAllowed"=dword:00000001

MAC (no probado).

Ejecutar en terminal:

defaults write http://com.google.Chrome InsecurePrivateNetworkRequestsAllowed -bool true

Nota de un lector:

Yo uso mac, y lo que he hecho ha sido permitir la siguiente ‘flag’ en chrome:

Allow invalid certificates for resources loaded from localhost.

A través de las opciones experimentales de Chrome, como habéis comentado en el artículo: chrome://flags/

Una vez presentada la documentación, lo he vuelto a desactivar.

Linux (no probado).

Ejecutar en terminal:

mkdir -p /etc/opt/chrome/policies/managed && echo '{ "InsecurePrivateNetworkRequestsAllowed": true }' > /etc/opt/chrome/policies/managed/autofirma_fix.json