Revocaches o certificado VPN equivocado? Opcións de recuperación e límites
Identifica o emisor, o número de serie e o código de motivo antes de tocar a CA. A revocación permanente, a retención do certificado e unha pausa de admisión son tres reparacións.
Alguén revocou un certificado na consola da CA e agora un usuario non pode conectarse. O primeiro instinto é buscar o desfacer, e para a maioría das PKI non existe: a revocación é un feito declarado sobre un número de serie, e o camiño de volta admitido é un certificado novo, non un rexistro invertido. Percorre as comprobacións seguintes en orde, porque que reparación se che permite usar depende do código de motivo e de se a clave chegou a exporse.
Identifica o certificado, non a persoa
Os nomes comúns repítense. Un usuario que se volveu inscribir o trimestre pasado pode ter dous certificados co mesmo CN e números de serie distintos, e revogar un deixa o outro funcionando. Establece primeiro o obxecto exacto:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Anota o número de serie, o emisor, a data de revocación e o motivo rexistrado na CRL. Despois confirma que dispositivos presentan ese número de serie, porque un certificado revogado pode seguir instalado nun portátil, un teléfono e un router de reposto, e unha substitución que só chega a un deles xera un segundo incidente.
Unha comprobación rápida de comportamento confirma o estado sen cambiar nada:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Se informa que o certificado está revogado, a CRL e o cliente coinciden; se verifica limpiamente, o cliente que tes non é o revogado, e a busca continúa.
Comproba se a CA usou retención ou revocación permanente
A RFC 5280 define certificateHold como un estado temporal e removeFromCRL como o sinal que o libera. Ese ciclo de vida é real, pero non é un botón de desfacer xeral. Ler o código de motivo diche se o emisor pretendeu algunha vez admitir a liberación.
A trampa é supor que unha intención temporal implica un rexistro temporal. Se a entrada da CA leva keyCompromise ou cessationOfOperation, o certificado está revogado de forma permanente, faga o que faga a persoa que premeu o botón. Á inversa, unha entrada marcada certificateHold nunha CA que non implementa a liberación de retención é permanente na práctica, porque nada publicará nunca a liberación.
As CA baseadas en OpenSSL ilustran o límite. A orde ca acepta valores de -crl_reason, incluídos certificateHold e removeFromCRL, pero non xera CRL delta — a documentación de OpenSSL CA sinala esa limitación para a súa saída de CRL. Unha CRL completa que simplemente omite o número de serie é un modelo de publicación distinto dunha delta que di "esta entrada está liberada", así que pegar removeFromCRL nunha CA VPN baseada en OpenSSL non produce a liberación definida polas normas.
Se a clave pode ter quedado exposta, substitúea
Un certificado revogado é unha declaración de que esta clave xa non pode ser confiable. Se a revocación era correcta en esencia — portátil perdido, clave copiada a un disco compartido, clave privada pegada nun ticket — restaurar o mesmo certificado inverte unha decisión de seguridade que funcionaba como debía.
Emite un par de claves novo mediante o proceso de inscrición, distribúe o perfil novo e deixa o número de serie antigo revogado durante toda a súa vida. Actualiza todo o que fixa a identidade por número de serie ou pegada, incluídas listas de admisión, inventarios de dispositivos e monitorización que espera un certificado concreto.
O argumento de comodidade para restaurar o antigo é real, pero debe responderse explicitamente e non en voz baixa. "O usuario necesita acceso hoxe" é unha razón para acelerar a emisión, non para desrevocar unha clave da que non podes dar conta.
Se foi un erro administrativo, substitúe baixo control
Cando a revocación era simplemente errónea e a clave nunca se expuxo, a reparación segue sendo unha substitución controlada e non unha edición. Usa o proceso admitido do emisor, mantén o número de serie e o historial de emisión intactos, e evita os dous atallos tentadores: xirar o carácter de estado en index.txt de R a V, e borrar a fila de emisión para que un certificado novo poida reutilizar o número de serie.
Nunha CA OpenSSL a base de datos está separada por tabuladores e é fácil de ler mal, o que fai atractiva a edición manual:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Léa, non a escribas. Editar o ficheiro cambia a seguinte CRL sen ningún rastro de auditoría, e calquera segunda instancia de CA ou copia de seguridade que aínda conserve a fila orixinal discrepará dela máis adiante.
Despois de emitir a substitución, publica unha CRL nova mediante o mecanismo habitual e deixa que os clientes a recollan. Quitar unha CRL, acurtar a súa vida ata nada ou desactivar a comprobación de revocación no perfil do cliente arranxa un usuario debilitando todas as demais revocacións que a CA publicase nunca.
Confirma unha admisión nova e conserva o rexistro
Proba cunha conexión nova, non coa sesión que xa estaba aberta. Un túnel activo pode non volver executar as comprobacións de admisión que fai un handshake novo, e as cachés de CRL fan que un cliente poida seguir conectándose ata que se refresque. Desconecta, volve conectar e confirma no rexistro do servidor que número de serie foi admitido.
Rexistra o que ocorreu mentres aínda está fresco: que número de serie se revogou, por quen, con que motivo, que substitución se emitiu e cando se republicou a CRL. Ese rexistro é o que fai posible a seguinte revisión de revocación, e tamén é a proba de que o erro se xestionou en lugar de ocultarse.
Para suspensións breves no futuro, usa un mecanismo de pausa de admisión se o despregamento ten un — unha conta desactivada na capa de identidade, unha pertenza a grupo eliminada, un perfil de cliente retido. Iso mantén unha decisión de política temporal separada da cuestión de se un certificado emitido segue sendo fiable, e é exactamente a distinción que se perdeu a primeira vez.