- Created by Bianca Ferreira, last modified by Igor Andrade on 19/06/2023
O Cronapp dá suporte a autenticação mútua adicionando um novo fator de segurança a sua aplicação.
Figura 1 - Login com Certificado digital
A autenticação mútua (certificado digital) no Cronapp não funciona com as aplicações mobile.
As configurações apresentadas nessa documentação se aplicam ao ambiente servidor da aplicação.
Instalar e configurar seu certificado SSL
Depois de validar e emitir seu certificado SSL, você pode instalá-lo no servidor Apache (onde o CSR foi gerado) e configurar o servidor para usar o certificado.
Como instalar e configurar seu certificado SSL no servidor Apache
- Copie os arquivos do certificado para o seu servidor.
- Copie os arquivos (SeuCert.crt) e seu certificado primário (Seu_Dominio.crt).
Copie esses arquivos, juntamente com o arquivo *.key que você gerou ao criar o CSR, para o diretório no servidor em que você mantém o certificado e os arquivos de chave.
Nota
Torne-os legíveis pela raiz apenas para aumentar a segurança
- Encontre o arquivo de configuração do Apache (httpd.conf) que você precisa editar.
- O local e o nome do arquivo de configuração podem variar de servidor para servidor, especialmente se você estiver usando uma interface especial para gerenciar a configuração do servidor.
- O arquivo de configuração principal do Apache geralmente é chamado httpd.conf ou apache2.conf. Os locais possíveis para esse arquivo incluem
/etc/httpd/ou/etc/apache2/
.
Geralmente, a configuração do certificado SSL está localizada em um bloco <VirtualHost> em um arquivo de configuração diferente. Os arquivos de configuração podem estar em um diretório como /etc/httpd/vhosts.d/
, /etc/httpd/sites/
ou em um arquivo chamado httpd-ssl.conf. Uma maneira de localizar a configuração SSL nas distribuições do Linux é pesquisar usando grep, conforme mostrado no exemplo abaixo:
grep -i -r "SSLCertificateFile" /etc/httpd/
Nota
Certifique-se de substituir / etc / httpd / pelo diretório base para sua instalação do Apache.
- Identifique o bloco SSL <VirtualHost> que você precisa configurar.
- Se o seu site precisar ser acessível por conexões seguras (https) e não seguras (http), você precisará de um host virtual para cada tipo de conexão. Faça uma cópia do host virtual não seguro existente e configure-o para SSL, conforme descrito acima.
- Se seu site precisar ser acessado apenas com segurança, configure o host virtual existente para SSL, conforme descrito acima.
- Configure o bloco <VirtualHost> para o site habilitado para SSL
Abaixo está um exemplo muito simples de um host virtual configurado para SSL.
<VirtualHost 192.168.0.1:443> <Location "/mutual"> SSLVerifyClient require SSLVerifyDepth 5 SSLOptions +StdEnvVars RequestHeader set SSL_CLIENT_S_DN "%{SSL_CLIENT_S_DN}s" </Location> DocumentRoot /var/www/html2 ServerName www.seudominio.com SSLEngine on SSLProtocol TLSv1.2 SSLCipherSuite HIGH:!aNULL:!MD5 SSLHonorCipherOrder on SSLCertificateFile /caminho/para/Seu_Dominio.crt SSLCertificateKeyFile /caminho/para/Sua_chave_privada.key SSLCertificateChainFile /caminho/para/SeuCert.crt </VirtualHost>
Certifique-se de ajustar os campos e os nomes dos arquivos para corresponder aos seus arquivos de certificado.
- SSLEngine: habilita o protocolo SSL.
- SSLProtocol: determina quais os protocolos SSL serão permitidos, estamos definindo apenas o TLSv1.2.
- SSLCipherSuite: algoritmo utilizado para encriptação. Nessa configuração não será usado o MD5.
- SSLHonorCipherOrder: estabelece que a ordem do cipher deve ser respeitada.
- SSLCertificateFile: seu arquivo de certificado (por exemplo, Seu_Dominio.crt).
- SSLCertificateKeyFile: arquivo .key gerado no memento que você criou o CSR (por exemplo, Sua_chave_privada.key).
- SSLCertificateChainFile: arquivo de certificado intermediário (por exemplo, SeuCert.crt).
Nota
Se a diretiva SSLCertificateChainFile não funcionar, tente usar a diretiva SSLCACertificateFile.
Teste seu arquivo de configuração do Apache antes de reiniciar.
Como prática recomendada, verifique se há erros no arquivo de configuração do Apache antes de reiniciar o Apache.
Cuidado
O Apache não será iniciado novamente se seus arquivos de configuração tiverem erros de sintaxe.
- Execute o seguinte comando para testar seu arquivo de configuração (em alguns sistemas, é apache2ctl):
apachectl configtest
- Reinicie o Apache
Você pode usar os comandos apachectl para parar e iniciar o Apache com suporte a SSL. Mas antes, verifique se possui algum erro de sintax no que foi configurado:
apachectl configtest
Após o Apache retornar a mensagem "Syntax OK
", pare e inicie em seguida usando os comandos:
apachectl stop apachectl start
Reinicie o Notes
Se o Apache não reiniciar com o suporte SSL, tente usar o apachectl beginsl
em vez do apachectl start
. Se o suporte a SSL for carregado apenas com apachectl runssl
, recomendamos que você ajuste a configuração de inicialização do apache para incluir suporte SSL no comando apachectl start
regular. Caso contrário, seu servidor poderá exigir a reinicialização manual do Apache usando o apachectl winssl
no caso de uma reinicialização do servidor. Isso geralmente envolve a remoção das tags <IfDefine SSL> e </IfDefine> que incluem sua configuração SSL.
Parabéns! Você instalou seu certificado SSL com sucesso.
Configurando o apache como proxy Reverso
Para utilizar a autenticação mútua com certificado SSL, precisaremos configurar um servidor de Web como Proxy Reverso.
Adicione as seguintes configurações no seu Virtual Host
ProxyPreserveHost on RequestHeader set X-Forwarded-Proto https RequestHeader set X-Forwarded-Port 443 ProxyPass / http://<URL_DO_Servidor>:<PORTA>/ ProxyPassReverse / http://<URL_DO_Servidor>:<PORTA>/
Habilitando o login com certificado no Cronapp
Faça o login utilizando seu usuário e senha.
Figura 2 - Login com Certificado digital (habilitando o certificado)
Na página Home, clique em Perfil (profile) > Vincular Certificado (Link certificate), como na figura 2.1.
Figura 2.1 - Opção de vincular certificado
Aguarde a confirmação da aplicação (Figura 2.2).
Neste passo a aplicação irá referenciar o certificado que consta no servidor com o certificado que está sendo enviado pela aplicação.
Figura 2.2 - Notificação de vinculo do certificado
Pronto! Seu certificado estará vinculado ao seu usuário e você poderá logar na próxima vez a partir do botão Login with certificate na tela de Login da aplicação (Figura 2).
Nessa página
- No labels