Autofirma ¿Cómo se instala en Silverblue?

Hola. Soy usuario Workstation desde hace un año y me siento muy cómodo en Fedora, pero me gustaría dar el salto a Silverblue (no modifico nada del OS, solo quiero encenderlo y funcionar, ah…lo más complejo que hago es una Libreoffice Calc). Las aplicaciones que uso están en Flatpak o. Appimage, pero Autofirma no y me es imprescindible. ¿Alguien la usa? Gracias.

Buenas!

Hace unos meses estuve peleándome con esto (es con diferencia lo que más cuesta en Silverblue, el resto es hasta más sencillo que en Workstation y te elimina muchas preocupaciones). Ví tres formas de hacerlo, aunque solo te recomiendo la primera de ellas:

  • Añadirlo como paquete layered usando rpm-ostree: instalamos dependencias con rpm-ostree install java-21-openjdk nss-tools (no se si has usado las atómicas de Fedora antes, pero básicamente así puedes instalar cualquier paquete no incluido en la imagen oficial, como openssl, por ejemplo) y luego descargamos el .rpm de autofirma y lo mismo, lo instalamos con rpm-ostree install [[RUTA AL PAQUETE]]. Reinicias y listo, debería aparecer. Como dato a comentar, creo que el java 21 no está oficialmente soportado (el máximo es el 17, si no recuerdo mal) pero en un año no he tenido problemas, aunque me salía un aviso. En los repositorios del rpm-ostree solo veo el java 21 y el 25.

  • Un alma cándida ha hecho una imagen de Silverblue con el Autofirma y el Configurador de la FNMT ya incluidos: GitHub - aguslr/esblue: Imagen de Fedora Silverblue para usar el certificado digital del Gobierno de España. Aunque sinceramente, con lo fácil que es incluirlos (una vez descubres cómo hacerlo), no veo la necesidad, y supongo que dependerás de que esa persona mantenga correctamente la imagen, aunque no he mirado mucho cómo va el tema.

  • Hay otra persona que veo que estuvo experimentando con empaquetar el autofirma y sus dependencias en un flatpak: GitHub - aruiz/autofirma-flatpak. Le hice un fork y estuve experimentando (modificando el código para que me funcionara mejor en monitores con mayor densidad de píxeles, que cogiera correctamente los certificados de la ubicación actual de los depósitos NSS de Firefox y Brave -cosa que no conseguí-, etc.). Es funcional pero cuando lo han actualizado a la 1.9 hay que volver a reempaquetarlo en el flatpak, y al final la cosa acaba siendo tan dolorosa que es más facil ponerlo como Layered Package y listo.

Sobre los certificados, nunca he conseguido que el Autofirma los coja del depósito del Firefox o del Brave, incluso modificando el código fuente y recompilándolo (efectivamente, estaba bastante aburrido ese día). Un día se me hizo la luz y descubrí cómo meter los certificados en el depósito del sistema (cosa que igual es obvia pero para mí no lo fue):

  • Para añadir un certificado: pk12util -d /etc/pki/nssdb -i [[RUTA AL ARCHIVO .P12]].
  • Si queremos comprobar que se ha añadido: certutil -d /etc/pki/nssdb -L.
  • Si queremos cambiar el nombre que aparece: certutil -d /etc/pki/nssdb --rename -n "[[NOMBRE ANTIGUO]]" --new-n "[[NOMBRE NUEVO]]".
  • Para eliminar un certificado: certutil -d /etc/pki/nssdb -D -n "[[NOMBRE]]".

Para esto tenemos que tener nss-tools como Layered Package. Añadiendo los certificados así, ya aparecen en la lista del autofirma y no tenemos que buscar el .p12 cada vez. Sigo con la mosca detrás de la oreja porque en teoría /etc/pki/nssdb (o cualquier carpeta del sistema fuera del perfil) no es modificable en Silverblue, pero debe de ser un symlink o algo porque si hago certutil -d /var/home/[[USER]]/.pki/nssdb/ -L me aparecen mis certificados correctamente puestos en mi carpeta de usuario.

Ah, y los certificados de la FNMT funcionan correctamente (y los veo preferibles, ya que la clave privada la genera el configurador en tu propia máquina), pero algunos de la ACCV he visto que hay que convertirlos con el openssl usando el parámetro legacy, si no recuerdo mal, para que Linux los admita.

En fin, buena suerte…