Cómo eliminar un certificado VPN obsoleto de un almacén de confianza
Eliminar un perfil VPN deja el certificado en el sistema operativo, el navegador o la tienda de aplicaciones. Coincida por huella, elimine la copia más estrecha y luego verifique la cadena.
Su cliente VPN está desinstalado, el perfil ha desaparecido de Ajustes y el túnel sigue levantándose con las credenciales antiguas. O lo elimina, reinicia y lo encuentra de vuelta a la mañana siguiente. Ninguna de las dos cosas es un botón de eliminar averiado. Un perfil es configuración; un certificado es material de clave más una decisión de confianza registrada en un almacén al que el perfil solo apunta. Cuál de los dos tiene en la mano decide qué debe significar 'eliminar'.
Un perfil no es un certificado
Tres objetos distintos se llaman 'el certificado' en una configuración VPN. La identidad del cliente es un certificado hoja con una clave privada, y la pasarela lo usa para decidir quién es usted. La hoja propia del servidor y su intermedio son lo que su cliente comprueba al conectarse. El ancla de confianza, normalmente un certificado raíz o de CA privada, es lo que hace que la cadena sea verificable en absoluto. RFC 5280 los llama ancla de confianza, intermedio y entidad final, y la cadena valida solo mientras cada eslabón firma el de abajo.
Elimine la identidad y un dispositivo pierde el acceso. Elimine el ancla y todas las aplicaciones que validan contra ese almacén pierden la capacidad de comprobar cualquier cosa emitida bajo ella, incluidas conexiones que no tienen nada que ver con la VPN. Esa asimetría es todo el riesgo aquí: una raíz instalada para una pasarela suele ser la misma raíz que firma un portal interno, un servidor de correo o un espejo de paquetes. Recuerde cuál de las dos tiene en la mano.
La propiedad decide si la eliminación sigue eliminada. En un portátil que usted posee, solo usted puede volver a poner el certificado. En un dispositivo gestionado, un perfil de configuración o una carga útil de MDM pueden reinstalarlo en el siguiente registro, y por eso 'vuelve' y por eso eliminar con más fuerza no ayuda.
Averigüe qué almacén lo sigue teniendo
La gente empieza en la aplicación Ajustes, que es el único lugar donde un certificado no se guarda. Las ubicaciones reales son los almacenes de confianza del sistema operativo, el propio almacén del navegador y el almacén privado de la aplicación.
| Store | What deleting from it affects |
|---|---|
| Windows CurrentUser\My | your login session only |
| Windows LocalMachine Root | every user and service on the machine |
| macOS login or System keychain | one account, or all of them with sudo |
| Linux ca-certificates bundle | curl, git, Python, anything using the system bundle |
| Firefox cert9.db | Firefox only; it does not read the OS store |
Coincida por el número de serie o la huella, nunca por el nombre visible. Los nombres visibles los pone quien emitió el certificado y se reutilizan: 'Example VPN' pueden ser tres certificados con tres claves distintas, uno aún en uso diario.
certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256
En macOS la herramienta security da los mismos datos, y find-identity muestra qué certificados todavía tienen una clave privada adjunta:
security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client
Elimine el objeto estrecho, conserve el emisor compartido
Exporte antes de eliminar. Sin una copia de seguridad, la única recuperación es volver a emitir, lo que en una CA privada significa volver a quien gestiona la PKI. El PFX exportado también es lo que entrega si la eliminación resulta ser la decisión equivocada.
certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>
El -user flag es el que la gente deja caer por accidente. Sin él, certutil trabaja sobre el almacén de la máquina, lo que significa un shell elevado, un conjunto distinto de certificados y un radio de impacto que ahora incluye todas las demás cuentas de la máquina.
En macOS y Linux la forma es la misma: identifique, exporte y luego elimine del almacén más estrecho que explique el síntoma. Eliminar el archivo bajo /usr/local/share/ca-certificates y volver a ejecutar update-ca-certificates es suficiente; --fresh solo ayuda cuando los enlaces simbólicos de /etc/ssl/certs ya son incoherentes. Los sistemas de la familia RHEL guardan anclas en /etc/pki/ca-trust/source/anchors, donde trust anchor --remove hace el mismo trabajo.
sudo security delete-certificate -Z <sha1> /Library/Keychains/System.keychain
sudo rm /usr/local/share/ca-certificates/example-vpn.crt
sudo update-ca-certificates
sudo trust anchor --remove /etc/pki/ca-trust/source/anchors/example-vpn.crt
Antes de eliminar un certificado de CA, compruebe qué más encadena con él. Listar los sujetos dentro del paquete es una comprobación de dos líneas y responde si esa ancla hace otro trabajo:
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
| openssl pkcs7 -print_certs -noout | grep -i example
Eliminar el archivo no es revocar la identidad
Una eliminación local quita una copia. La clave privada puede seguir en un p12 adjunto a un ticket antiguo, una carpeta de copias de seguridad o el segundo portátil configurado al mismo tiempo. Si esto era una identidad de cliente, la pasarela sigue aceptando cualquier copia de esa clave hasta que la identidad sea rechazada en el lado del servidor.
Para una OpenVPN PKI, eso significa revocar el certificado y asegurarse de que la CRL a la que hace referencia crl-verify está vigente; easyrsa revoke después easyrsa gen-crl es la versión corta. Para una pasarela ligada a un proveedor de identidad, desactive el usuario o quite el dispositivo allí, porque el certificado es solo una credencial en juego. Eliminar la copia local mientras la cuenta sigue activa parece limpieza y no lo es.
El trabajo de incidente tiene otro orden: preserve primero el certificado, su número de serie y el registro de revocación, y luego elimine y revoque. Esos registros no cuestan nada y no exigen dejar una credencial operativa en su sitio.
Verifique con un handshake y una segunda aplicación
Compruebe la cadena desde fuera, no desde el listado del almacén que acaba de editar. El almacén muestra su edición; el handshake muestra el resultado.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com \
-CAfile /etc/ssl/certs/ca-certificates.crt -verify_return_error < /dev/null
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt vpn-gateway.pem
Un código de retorno de 0 significa que las anclas restantes siguen validando la pasarela. Un error de cadena tras eliminar el ancla es el resultado esperado, y confirma que dio con el ancla en uso y no con un duplicado en un almacén que el cliente nunca lee. Si la conexión sigue funcionando, busque una segunda copia, un almacén incrustado en la aplicación o un certificado fijado, todos habituales en clientes que traen su propia lista de confianza.
Luego pruebe algo no relacionado: un sitio interno, un cliente de correo, un espejo de paquetes. Eso mide el radio de impacto de forma barata antes de que se cierre la ventana de cambios.
- Rol identificado como identidad, intermedio o ancla de confianza
- Número de serie y huella registrados, y la copia exportada a la ubicación aprobada
- Eliminación realizada en el ámbito más estrecho que explica el síntoma
- Autorización del lado del servidor revocada cuando una persona o un dispositivo se fue
- Handshake explicado, y una aplicación no relacionada vuelta a probar
- Carga útil de MDM o perfil de gestión actualizado, o el certificado vuelve
Si el certificado vuelve tras un reinicio, el trabajo no ha terminado: algo lo posee y lo reinstala. Encuentre a ese propietario antes de eliminar de nuevo, porque una tercera eliminación se comportará exactamente como las dos primeras.