Tempo aproximado para leitura: 00:05:00 min
Dúvida
Como realizar a criptografia da senha do SSL no WildFly?
Ambiente
Cross Segmentos - TOTVS CRM Automação de Força de Vendas (SFA) - Infraestrutura - Todas as versões
Solução
Este artigo será focado apenas na criptografia da senha do SSL, para realizar a configuração do certificado SSL acesse o seguinte KCS: Cross Segmentos - TOTVS CRM SFA - Configuração de certificado SSL (formato PFX ou JKS) no WildFly
1. Caso seu WildFly encontre-se na versão 9 é necessário seguir o próximo passo, caso se encontre na versão 20 pule para a próxima instrução.
1.1 Abra o arquivo module.xml, presente na seguinte rota \ws\wildfly \modules\system\layers\base\org\picketbox\main.
1.2 Adicione a seguinte instrução na última linha, antes de <\dependencies>:
(Antes)
(Depois)
Código a ser inserido:
<module name="sun.jdk"
2. Vamos gerar o arquivo vault.jceks.
2.1 Entre na pasta bin do Java, que geralmente segue o caminho C:\ws\java\jre11\bin, porém pode variar.
2.2 Abra um prompt(cmd) neste diretório.
2.3 Execute o seguinte comando, lembrando que o caminho da pasta configuration pode variar sendo então necessário ajustar o código para o seu caso.
Exemplo de código:
keytool -genseckey -alias vault -keyalg aes -keysize 128 -keystore C:\ws\serverapp\wildfly\standalone\configuration -storetype jcek
Legenda:
- keytool: Ferramenta de linha de comando usada para gerenciar chaves (tanto públicas quanto privadas) e certificados em um keystore.
- -genseckey: Especifica que o keytool deve gerar uma chave secreta.
- -alias vault: Define um alias (apelido) para a chave gerada. No exemplo, o alias é vault. Esse alias é usado posteriormente para referenciar a chave no keystore.
- -keyalg aes: Define o algoritmo da chave. Neste caso, AES (Advanced Encryption Standard) é um algoritmo de criptografia simétrica amplamente usado.
- -keysize 128: Especifica o tamanho da chave em bits. 128 bits é um tamanho comum para chaves AES, proporcionando um bom equilíbrio entre segurança e desempenho.
- -keystore: Define o caminho do keystore, que é onde a chave gerada será armazenada. Neste caso, o keystore será armazenado na pasta C:\ws\serverapp\wildfly\standalone\configuration.
- -storetype jcek: Especifica o tipo do keystore. JCEKS (Java Cryptography Extension KeyStore) é um formato de keystore que oferece suporte a algoritmos de criptografia simétrica, como AES. O uso de JCEKS é apropriado quando você está lidando com chaves secretas.
2.4 Será solicitada uma senha de 6 dígitos.
Atenção!
A senha definida nesta parte é a senha do keystore.
2.5 Confirme a senha de 6 dígitos.
2.6 Após finalizar esses processos, você terá criado o arquivo vault.jceks e configurado uma senha para ele.
3. Neste passo iremos inicializar o vault e configurá-lo.
3.1 Localize o diretório de instalação do WildFly e entre em sua pasta bin.
3.2 Abra um prompt(cmd).
3.3 Execute o seguinte comando:
Importante!
As duas partes onde estão definidos os diretórios devem ser ajustadas conforme a estrutura das pastas de sua instalação.
Atenção!
Não feche o cmd após o uso do comando, pois as informações que serão retornadas serão utilizadas nos próximos passos.
vault.bat --keystore "C:\ws\serverapp\wildfly\standalone\configuration\vault.jceks" --keystore-password
(Substitua pela senha do keystore) --alias vault --vault-block vault.jceks --attribute password --sec-attr (senha certificado SSL)
--enc-dir "C:\ws\serverapp\wildfly\standalone\configuration" --iteration 44 --salt 102030
Legenda:
- vault.bat: Este é o comando para iniciar o Vault no WildFly. Você está executando o arquivo batch vault.bat para inicializar o Vault.
- --keystore: Este parâmetro especifica o caminho no qual se encontra arquivo de armazenamento de chaves (keystore) do Vault. Usaremos então o caminho que definimos no passo 2.3, sendo ele o C:\ws\serverapp\wildfly\standalone\configuration\vault.jceks.
- --keystore-password: Aqui, você deve substituir pela senha do keystore que foi definida no passo 2.4. Essa senha é necessária para acessar o keystore e deve ser fornecida.
- --alias: Este é o alias usado para identificar o keystore no arquivo de keystore. Geralmente, "vault" é um nome comum para esse alias, mas pode ser personalizado.
- --vault-block: Esse parâmetro define o caminho e o nome do arquivo do bloco de Vault. Neste caso, o arquivo é vault.jceks.
- --attribute: Aqui, você especifica o atributo (no caso, "password") que o Vault irá armazenar de forma segura. O atributo é o tipo de dado sensível que você deseja proteger com o Vault.
- --sec-attr: Esta é a senha necessária para descriptografar o atributo que está sendo armazenado de forma segura. Você deve substituir (senha Certificado SSL) pela senha real necessária.
- --enc-dir: Esse parâmetro define o diretório onde os dados criptografados do Vault serão armazenados. O diretório é especificado como C:\ws\serverapp\wildfly\standalone\configuration
- --iteration: Este parâmetro especifica o número de iterações para o algoritmo de geração de chave. O valor "44" é fornecido como exemplo e pode ser personalizado com base nas necessidades de segurança.
- --salt 10203040: O salt é um valor aleatório usado para aumentar a segurança da criptografia. O valor "10203040" é um exemplo e pode ser personalizado de acordo com as práticas de segurança.
4. Dependendo da versão do WildFly que estiver sendo utilizada, os retornos após o comando do passo anterior poderão ser diferentes. Em ambos os casos, é necessário copiar o código que for retornado.
(WildFly 9):
(WildFly 20):
5. Caso sua versão seja a WildFly 9, o código copiado deverá ser colado manualmente no standalone.xml, da seguinte forma.
5.1 Abra o arquivo standalone.xml (geralmente encontrado no caminho ws\serverapp\wildfly\standalone\configuration) e adicione o código que foi copiado no passo anterior da seguinte forma:
6. Se a versão utilizada for WildFly 20, o retorno do comando do passo anterior será um código a ser executado da seguinte forma:
6.1 Execute o arquivo jboss-cli.bat (geralmente encontrado no caminho C:\ws\serverapp\wildfly\bin), e insira o comando connect e tecle enter.
6.2 Cole o comando que foi copiado no passo 4, e nos dois locais onde estão especificados diretórios, você irá colocar uma contrabarra ao lado das contrabarras que já estão presentes, segue exemplo:
(Antes)
C:\ws\serverapp\wildfly\standalone\configuration\vault.jceks
(Depois)
C:\\ws\\serverapp\\wildfly\\standalone\\configuration\\vault.jceks
6.3 Execute o comando:
7. Copie o código exibido, segue exemplo abaixo:
7.1 No arquivo standalone.xml (Geralmente no caminho ws\serverapp\wildfly\standalone\configuration), busque a tag </security-realm> e altere o campo keystore-password, removendo a senha que estava explícita e adicionando o comando copiado anteriormente. Segue exemplo abaixo:
7.2 Salve as modificações realizadas no arquivo.
0 Comentários