Ter a CA raiz off-line é uma boa política de segurança, por isso é um bom começo. Mas se você quiser que ele seja totalmente separado, você não deve primeiro criar a CA raiz e a subcabo CA no mesmo servidor e, em seguida, remover a CA raiz - em vez disso, você deve configurá-las separadamente desde o início, para que você não É preciso passar por qualquer esforço extra para separá-los. Vou listar algumas maneiras de fazer isso abaixo e também uma maneira de simplesmente bloquear as chaves, mantendo as CAs reais no mesmo lugar.
1 - Servidor totalmente separado
A maneira mais segura é gastar dinheiro com o problema, ou seja, obter um servidor separado para a CA raiz. Crie a CA raiz nesse servidor. Em seguida, vá para o servidor em que você estará executando a CA de emissão e crie a sub-CA nessa. Ter a CA raiz assinar a sub-CA; há informações em o guia do usuário do EJBCA em como fazer isso. Uma vez feito isso, você pode bloquear o servidor com a CA raiz.
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 configurações de inicialização do systemd / arquivos init, e assim por diante. Mas você essencialmente faria da mesma maneira que com um servidor separado, exceto que ao invés de desligar todo o servidor, você desligaria o JBoss e a instância do banco de dados, desmontaria o disco onde seus dados estavam e bloquearia o disco .
3 - Removendo as chaves em vez do disco / servidor
Você pode manter a CA raiz junto com as CAs emissoras, mas remover sua chave privada. Isso é efetivamente incapacitante - está lá, mas não pode assinar nada, então não pode ser abusado. Essa é a maneira mais barata e também facilita quando você usa o CA raiz. Por favor, faça um backup antes de testar isso pela primeira vez!
Todos os passos abaixo são feitos a partir da linha de comando, não da GUI da web. Você pode fazer parte da GUI, mas você ainda precisa acessar o servidor real para mover as coisas, então acho mais fácil fazer tudo lá para começar.
- Exporte as chaves da CA raiz para um arquivo PKCS # 12
$ bin/ejbca.sh ca exportca TestCA /mnt/USBDrive/TestCA.p12 Using JBoss JNDI provider... Enter keystore password: YourVeryGoodPassword
-
Instale a unidade USB e bloqueie-a no seu cofre.
-
Remova o armazenamento de chaves do servidor
$ bin/ejbca.sh ca removekeystore TestCA Using JBoss JNDI provider...
Se você olhar a GUI agora, verá que o TestCA está off-line e não pode ser ativado.
- Quando quiser usar a CA raiz novamente, importe o keystore:
$ bin/ejbca.sh ca restorekeystore TestCA /mnt/USBDrive/TestCA.p12 -s SignatureKeyAlias -e EncryptionKeyAlias Using JBoss JNDI provider... Enter keystore password: YourVeryGoodPassword $
E, claro, remova o keystore novamente, como no passo 3, depois de terminar com o que você está fazendo.