Skip to content

Instantly share code, notes, and snippets.

@fbarbalho
Last active January 23, 2026 16:31
Show Gist options
  • Select an option

  • Save fbarbalho/f909b1b042cdb41c5c365a9c4a119b0f to your computer and use it in GitHub Desktop.

Select an option

Save fbarbalho/f909b1b042cdb41c5c365a9c4a119b0f to your computer and use it in GitHub Desktop.
Cómo usar el DNIe en macOS (y que funcione fuera de Firefox)

🪪 Cómo usar el DNIe en macOS (y que funcione fuera de Firefox)

✅ ¿Qué es el DNIe y por qué no funciona automáticamente en macOS?

El DNI electrónico español (DNIe) contiene dos certificados digitales:

  1. Certificado de autenticación (para identificarte en sitios web oficiales)
  2. Certificado de firma digital (para firmar documentos, por ejemplo en AutoFirma)

En macOS, aunque Firefox puede usar estos certificados directamente, otros navegadores (Chrome, Safari) y apps como AutoFirma no los ven por defecto porque dependen del sistema (Keychain / Llavero).


🎯 Objetivo

Hacer que los certificados del DNIe estén disponibles para todo el sistema macOS: navegadores, AutoFirma, Hacienda, etc.


🛠 Requisitos

  • macOS Ventura, Monterey, o superior

  • DNIe con chip activo

  • Lector compatible (funcionando)

  • Módulo instalado en: /Library/Libpkcs11-dnie/lib/libpkcs11-dnie.so

  • Tener instalado:


📦 Paso 1 – Instalar OpenSC (si no lo tienes)

brew install opensc

Esto instala herramientas como pkcs11-tool, que usaremos para extraer los certificados.


🔍 Paso 2 – Verificar qué certificados hay en el DNIe

Con el DNIe insertado:

pkcs11-tool --module /Library/Libpkcs11-dnie/lib/libpkcs11-dnie.so -O

Verás algo como:

Certificate Object; label: CertAutenticacion
ID: 4130...

Certificate Object; label: CertFirmaDigital
ID: 4630...

💾 Paso 3 – Exportar los certificados

Ejecuta estos comandos para guardarlos en el escritorio:

# Certificado de autenticación
pkcs11-tool --module /Library/Libpkcs11-dnie/lib/libpkcs11-dnie.so \
  -r -y cert \
  -d 413032... (completo del paso anterior) \
  -o ~/Desktop/dnie-auth.cer

# Certificado de firma
pkcs11-tool --module /Library/Libpkcs11-dnie/lib/libpkcs11-dnie.so \
  -r -y cert \
  -d 463032... \
  -o ~/Desktop/dnie-sign.cer

🔐 Paso 4 – Importar en el sistema (Llavero)

security import ~/Desktop/dnie-auth.cer -k ~/Library/Keychains/login.keychain-db
security import ~/Desktop/dnie-sign.cer -k ~/Library/Keychains/login.keychain-db

Ahora puedes abrir “Acceso a Llaveros (Keychain Access)” y verás los certificados dentro de la sección "login".


🌐 Paso 5 – Usar en Safari, Chrome, AutoFirma

Al acceder a sitios como:

… el navegador te pedirá seleccionar el certificado del DNIe.


❓ ¿Cuándo se pide la contraseña del certificado?

Cuando intentas autenticarte o firmar, macOS solicita tu PIN (contraseña) del DNIe.

  • El PIN es un número de 6 a 8 dígitos que te dieron al sacar tu DNIe.
  • Si no recuerdas el PIN, debes acudir a una comisaría con lector de DNIe para cambiarlo.
  • El sistema operativo pedirá el PIN automáticamente al usar el certificado (no antes).

Ejemplo:

  • Abrir AutoFirma y firmar → te pedirá PIN
  • Entrar a la Agencia Tributaria con DNIe → te pedirá PIN

🧪 ¿Cómo probar si todo funciona?

  1. Abre Safari o Chrome
  2. Ve a: https://www.dnielectronico.es
  3. Entra en "Prueba de DNIe"
  4. Selecciona el certificado cuando lo pida
  5. Introduce tu PIN
  6. Si ves tu nombre: ¡todo está funcionando!

🧰 Extras (opcional)

Configurar AutoFirma para que reconozca el DNIe

Crea un archivo en:

~/Library/Application Support/AutoFirma/autofirma.cfg

Con este contenido:

keystore.dnie.native.library=/Library/Libpkcs11-dnie/lib/libpkcs11-dnie.so

✅ Resultado final

  • Firefox: funciona automáticamente (si configuraste PKCS#11)
  • Safari / Chrome: funciona tras importar al Llavero
  • AutoFirma: funciona tras configurar .cfg
  • Todo el sistema reconoce el DNIe
  • Se pide el PIN solo cuando es necesario usar el certificado

@bomberstudios
Copy link

bomberstudios commented Jun 25, 2025

Ojo con el paso 1: al instalar opensc en Sequoia, Homebrew muestra un warning que dice:

The OpenSSH PKCS11 smartcard integration will not work from High Sierra
onwards. If you need this functionality, unlink this formula, then install
the OpenSC cask.

La opción correcta es instalar opensc-app con brew install opensc-app, que instala el Cask de OpenSC.

@hmijail
Copy link

hmijail commented Jan 23, 2026

Gracias por la información, pero ¿podrías explicar qué hace esto exactamente? Veo que extraes los certificados del DNIe, pero ¿significa eso que la tarjeta física ya no será necesaria? Incluso, ¿seguirá la tarjeta funcionando al final? Si estuviese en España lo probaría yo mismo, pero estando fuera no puedo arriesgarme a quedarme con la tarjeta invalidada de alguna forma.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment