Estou procurando uma solução para extrair o CA da instância EJBCA, colocá-lo em uma unidade externa, que é protegida em um depósito seguro, por exemplo. Portanto, mantenho apenas o sub-ca para assinar os certificados de usuário final na instância EJBCA.
Aí eu só colocaria de volta quando precisasse gerar novamente uma sub-ca ou revogar uma sub-ca já criada.
Dessa forma, posso garantir que, mesmo que meu servidor seja comprometido, tenho certeza de que apenas o sub-ca restante está comprometido, mas meu ca raiz ainda é válido.
Existe uma solução para fazer uma coisa dessas?
Obrigado.
Ter a CA raiz offline é uma boa política de segurança, portanto, é um bom começo. Mas se você quiser que seja totalmente separado, você não deve primeiro criar a CA raiz e a sub CA no mesmo servidor e, em seguida, remover a CA raiz - em vez disso, você deve configurá-los separadamente desde o início, para que você não Não é necessário nenhum esforço extra para separá-los. Estarei listando algumas maneiras de fazer isso abaixo e também uma maneira de bloquear as chaves enquanto mantém as CAs reais no mesmo lugar.
1 - Servidor totalmente separado
A maneira mais segura é jogar dinheiro no problema - ou seja, obter um servidor separado para a CA raiz. Crie a CA raiz nesse servidor. Em seguida, vá para o servidor no qual você executará a CA de emissão e crie a sub-CA naquele. Faça com que a CA raiz assine a sub-CA; há informações no guia do usuário EJBCA sobre como fazer isso. Uma vez feito isso, você pode bloquear o servidor com a CA raiz ausente.
2 - Disco separado
A segunda maneira é ter uma instância separada do EJBCA/JBoss e do banco de dados (geralmente MySQL), onde todos os dados são armazenados em um disco removível. A vantagem é que você não tem um servidor extra. A desvantagem é alguma complexidade adicional à que você tem - você precisa de arquivos de configuração separados e arquivos de configuração/inicialização do systemd, e assim por diante. Mas você faria essencialmente da mesma maneira que com um servidor separado, exceto que, em vez de desligar o servidor inteiro, você desligaria o JBoss e a instância do banco de dados, desmontaria o disco em que seus dados estão e bloquearia o disco .
3 - Retirar as chaves ao invés do disco/servidor
Você pode manter a CA raiz junto com a(s) CA(s) emissora(s), mas remover sua chave privada. Isso está efetivamente prejudicando-o - está lá, mas não pode assinar nada, portanto não pode ser abusado. Esta é a maneira mais barata e também facilita quando você usa o root-CA. Por favor, faça um backup antes de testar isso pela primeira vez!
Todas as etapas abaixo são executadas na linha de comando, não na GUI da web. Você pode fazer parte da GUI, mas ainda precisa acessar o servidor real para mover as coisas, então acho mais fácil fazer tudo lá para começar.
Desmonte a unidade USB e tranque-a no seu cofre.
Remova o armazenamento de chaves do servidor
Se você observar a GUI agora, verá que o TestCA está offline e não pode ser ativado.
E, claro, remova o keystore novamente como na etapa 3, assim que terminar o que quer que esteja fazendo.