Perdeu o certificado do cliente? Revogue pelo número de série, não pelo nome
Um arquivo de certificado ausente não é um registro ausente. A revogação funciona sobre o número de série assinado pela CA, então encontre esse objeto antes de emitir um substituto.
O arquivo do certificado do seu cliente sumiu, e o reflexo é revogar o nome e emitir um novo. Esse reflexo deixa o certificado original válido, porque a revogação funciona sobre um número de série e não sobre um rótulo. A CA quase certamente ainda guarda uma cópia do que emitiu, e encontrar essa cópia é a tarefa inteira.
Perder um arquivo não é perder o registro da CA
Uma PKI Easy-RSA mantém os certificados públicos que emitiu, e as versões atuais também arquivam cópias por série no diretório certs_by_serial da PKI. A chave privada não é necessária para revogar nada. O que importa é o certificado exato que a CA assinou, e a CA já o tem.
Trabalhe numa cópia de segurança da PKI correta, com o administrador que a possui. A revogação é uma operação auditável, não um reparo feito num banco de produção à meia-noite.
Uma cópia do certificado público embutido do cliente também serve, se a implantação guardou uma.
Leia o emissor e a série antes de tudo
Inspecione o PEM recuperado e anote o emissor, o número de série, o sujeito e a janela de validade. O número de série é único no escopo de um emissor, não entre todas as CAs do seu ambiente, então o emissor faz parte da identidade. Se vários certificados compartilham um sujeito, são essas séries que os distinguem.
Confira os valores com os registros da CA e com o dispositivo ou a pessoa que você acredita deter o certificado.
Um nome comum pode ser reutilizado, e normalmente é. Não decida quais certificados retirar antes que as séries estejam anotadas.
Por que revogar o novo certificado não faz nada
Emitir um substituto com o mesmo nome comum cria um segundo certificado com uma série diferente. Revogar o substituto retira o novo e deixa o original válido até expirar. Do ponto de vista da CA são dois objetos independentes, e uma CRL lista séries e não nomes. O índice da CA mantém uma linha por certificado emitido exatamente por isso.
A mesma confusão produz o erro inverso: apagar o arquivo do cliente e supor que a CA o esqueceu. A exclusão no cliente não é um evento de revogação, e o certificado continua funcionando para quem tiver uma cópia.
Ambos os erros vêm de tratar o nome como a identidade.
Revogue o certificado que a série nomeia
Identifique o objeto antes de tocar na CA: openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates imprime os quatro valores numa só passagem, e a série é o que você compara ao arquivo da CA. O Easy-RSA guarda esse arquivo em pki/certs_by_serial, com um arquivo por série. O comando de revogação aceita um nome comum e não uma série, então copie o arquivo arquivado para pki/issued/<common-name>.crt e deixe o nome apontar para o objeto identificado. Execute easyrsa revoke <common-name> a partir do diretório da PKI e depois verifique se a linha correspondente em index.txt passou para R. A série é como você escolhe o objeto, não um argumento que o comando aceite.
openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates
cp pki/certs_by_serial/A1B2C3D4.pem pki/issued/client-01.crt
./easyrsa revoke client-01
grep -n client-01 pki/index.txt
./easyrsa gen-crl
Se index.txt não mostrar R, pare e leia o erro antes de gerar uma CRL, porque uma CRL construída a partir de um registro ainda válido não retira nada. Só depois que a linha muda você executa easyrsa gen-crl e passa à distribuição do arquivo.
Publique a CRL onde ela é realmente aplicada
Gere uma nova CRL pelo fluxo de trabalho suportado da PKI e depois publique-a em cada verificador que aplica as revogações deste emissor.
Um arquivo atualizado parado na CA não muda nada, porque a VPN encerra a decisão no seu próprio verificador. Verifique o emissor da CRL, o período de validade e as séries revogadas, e confirme que o serviço recarrega o arquivo em vez de guardar o anterior em cache. Propriedade e caminho importam tanto quanto o conteúdo: uma CRL que o daemon não consegue ler é indistinguível de nenhuma CRL. A opção crl-verify do OpenVPN nomeia o arquivo que o daemon lê, então verifique esse caminho e a propriedade do arquivo na configuração do servidor.
Verifique com uma tentativa de conexão real, não com o carimbo de tempo do arquivo.
Saiba quando uma CRL é a ferramenta errada
Se a chave privada do emissor já não é confiável, retirar séries conhecidas não impede que um detentor não autorizado assine novos certificados. Isso é uma transição de confiança do emissor, ou seja, uma nova CA e um plano de distribuição, não outra entrada na CRL. Um antigo administrador ter tido acesso não é, por si só, prova de uso indevido da chave, então reúna os fatos antes de reconstruir a confiança.
Editar à mão o banco de emissões para inverter uma letra de estado não substitui uma revogação assinada, e deixa a CRL inconsistente com os registros.
Mantenha a série, a CRL e a etapa de distribuição numa única nota, e a próxima auditoria torna-se um exercício de leitura. O projeto Easy-RSA documenta os comandos suportados para a versão instalada, e essa é a única interface que vale a pena seguir.