Tempo aproximado para leitura: 00:12:20 min
Dúvida
Como configurar servidor SSL SC HTML para o e-CPF?
Ambiente
SARA - Portal WEB - A partir da versão 12
Solução
Este documento descreverá o passo a passo para a configuração do Smart Client HTML para utilizar uma conexão segura HTTPS, na qual é utilizada para a autenticação via e-CPF.
O Smart Client HTML tem como base o servidor TomCat, no qual possibilita utilizar duas implementações de SSL.
Neste documento vamos abordar a utilização do conector SSL chamado JSSE, na qual já vem junto com o SCHtml por padrão.
1 - Geração do certificado SSL
Para utilizar o Smart Client com conexão segura, será necessário emitir um certificado de site seguro.
Estes certificados são emitidos por empresas especializadas como a CertiSign, Serasa, Caixa e etc.
1.1 - CSR
Para adquirir um certificado SSL é necessário gerar uma requisição da assinatura do certificado CSR que é um arquivo criptografado que contém a chave pública, nome, localidade e URL de sua organização. Na criação de um CSR deverá ser informado um arquivo inexistente em um caminho válido, este arquivo é o Keystore e o CSR é o inicio do Keystore.
Para gerar o CSR utilize a ferramenta Keytool do SDK localizada em <INSTALLDIR>/jre/bin/keytool
Execute o comando 1:
keytool-genkey -alias certificado-keyalg RSA -keystore C:\ssl\definaonome.kdb
Informe uma senha, neste exemplo vamos usar: totvs@123
Após informar a senha é necessário preencher os dados do certificado SSL:
- Qual é o seu nome ou sobrenome?: É o nome do site que você utilizará para instalar o Smart Client HTML na Web e que será publicado com o HTTPS;
- Pode utilizar por exemplo: sara.empresa.com.br, portal.empresa.com.br, etc
- Qual é o nome da sua unidade organizacional?: É o nome da unidade ou empresa que possui o site;
- Qual o nome da sua empresa?: Nome da empresa administradora do site;
- Qual é o nome da sua cidade ou localidade?: Nome da cidade;
- Qual é o nome do seu estado ou município?: Nome do estado, 2 dígitos;
- Quais são as duas letras do código do país desta unidade?: Código com duas letras do país;
Após preencher as informações acima aparecerá uma linha confirmando os dados, onde um dos itens mais importante é a chave CN que deve ser o nome do seu site.
Com os dados confirmados digite, S, para confirmar e informe novamente a senha definida no começo do comando.
Neste exemplo: totvs@123
Importante
- Lembrando que o caminho para o Keystore C:\Certificado\Keystore é válido e o arquivo definaonome.kdb não existe e será gerado com o CSR após a execução do comando.
- Fazer imediatamente um backup do arquivo C:\Certificado\Keystore\definaonome.kdb, pois o certificado será gerado para apenas essa chave pública e no caso de perda do arquivo ocasionando uma nova geração.
- Na criação do Keystore é solicitado a criação de uma senha, a mesma será utilizada durante todo o processo de implantação do certificado, portando guarde a senha para uma futura consulta.
- No comando é utilizado o parâmetro -alias certificado, quando receber o certificado da certificadora, o certificado deverá ser importado para o alias certificado.
- A requisição foi gerada dentro do keystore informado, agora é o hora de gerar o arquivo CSR com os dados da requisição que está no keystore. O arquivo será utilizado para efetuar o pedido do certificado juntamente com a certificadora. Algumas certificadoras possibilitam a inclusão direta do arquivo na solicitação on-line do certificado e outras disponibilizam um campo para ser incluído o conteúdo do arquivo CRS gerado, o conteúdo completo desde -----BEGIN NEW CERTIFICATE REQUEST----- até -----END NEW CERTIFICATE REQUEST-----
Para dar continuidade na solicitação de emissão do certificado, precisa-se executar o comando abaixo:
Comando 2:
keytool -certreq -keyalg RSA - alias certificado -file C:\ssl\definaonome.csr -keystore C:\ssl\nomedefinidonocomando1.kdb
Importante
- No comando é utilizado o parâmetro -alias certificado, este alias obviamente tem que ser o mesmo alias utilizado no comando 1.
- O caminho para o .csr C:\ssl\ é válido e o arquivo definaonome.csr não existe e será gerado com após a execução do comando.
- A senha solicitada na execução do comando a senha do keystore que foi cadastrada no comando 1.
1.2 Emissão do certificado junto aos órgãos responsáveis.
Após gerar o arquivo do comando 2, será necessário entrar em contato com os órgãos emissores de certificados SSL para a geração de uma chave publica.
Todo certificado SSL segue uma estrutura, uma sequência, que se resume em gerado para e gerado por
Exemplo: o certificado gerado para www.dominio.com.br foi gerado por Certificadora Intermediário e o certificado gerado para Certificadora Intermediário foi gerado por Certificadora Root, portanto para o funcionamento do seu certificado é necessário instalar, importar para o keystore, todos os certificados que fazem parte da estrutura, também conhecidos como raízes do certificado. Obviamente que cada certificadora segue uma estrutura diferente.
Para você identificar a estrutura correta do seu certificado, .cer, abra o seu certificado, dois cliques, na aba detalhes, mostrar tudo, localize o campo assunto, subject; neste campo estão as informações gerado para, localize o campo emissor, Issuer; neste campo estão as informações gerado por; sendo assim até chegar ao certificado root da certificadora. Enquanto você aguarda da certificadora a validação do seu CSR e a geração do seu certificado podemos ir instalando, importando, as raízes do certificado.
O pedido de SSL junto aos órgãos certificadores deve seguir o procedimento descrito no próprio site deles.
Neste exemplo, vamos usar um certificado emitido pelo site CACerts.org.
Para isto, será necessário abrir o arquivo criado no comando 2 no notepad e inseri-lo no site da emissora do certificado, para gerar a chave pública.
Após submeter o arquivo do comando 2 no site da certificadora, você receberá por e-mail ou no próprio site o conteúdo ou o arquivo da chave pública.
Caso receba o arquivo, basta baixa-lo e armazena-lo na pasta junto com os outros arquivos.
Caso receba o conteúdo, crie um arquivo com o mesmo nome definido no comando 2 porém com a extensão .cer.
Até este momento, você deverá possuir os seguintes arquivos na sua pasta, sendo que os nomes podem variar de acordo com o que você informou:
1.3 Importando as chaves de cadeia dos certificados
Como explicado anteriormente, para fechar a cadeia de Emitido para e Emitido Por, nós precisamos incorporar no nosso arquivo gerado no comando 1 as chaves ROOT e INTER.
Estes certificados ROOT e INTER são disponibilizados pela empresa emissora do seu certificado SSL.
Neste exemplo, vamos usar o da CACerts.org:
Vamos baixar estes arquivos salvar o Class 1 como root.crt e o Class 3 como inter.crt.
Desta forma teremos os arquivos até agora:
Para importar os certificados precisamos executar os comandos abaixo. Deve-se seguir a sequencia de importar primeiro o Root, depois o Inter e por último a chave pública:
Comando 3:
keytool -import -keystore C:\ssl\nomedefinidonocomando1.kdb -alias Root -trustcacerts -file C:\ssl\root.crt
Informar a senha definida no comando 1.
Comando 4:
keytool -import -keystore C:\ssl\nomedefinidonocomando1.kdb -alias Primary -trustcacerts -file C:\ssl\inter.crt
Informar a senha definida no comando 1.
Importante
- Sempre começar pelo root, e depois ir seguindo a sequencia.
- Os certificados raízes estão disponíveis no site das certificadoras.
- Os certificados raízes deverão ser importados para o keystore gerado no comando 1.
- A senha solicitada na execução do comando a senha do keystore que foi cadastrada no comando 1.
- Cada certificado raiz é importado para um alias diferente.
- O seu certificado pode ser enviado de diversas formas pela certificadora, algumas enviam o arquivo .cer .pem .crt e outras encaminham no corpo do e-mail. Para os casos dos arquivos é só salvar o arquivo e instalar, importar, para os casos que o certificado está no corpo do e-mail basta copiar o conteúdo desde -----BEGIN CERTIFICATE----- até -----END CERTIFICATE----- e através do notepad salvar um arquivo com este conteúdo no formato .cer .crt .pem. Com o certificado em mãos é hora de instalar, importar, para o mesmo keystore gerado no comando 1 e para o mesmo alias utilizado no comando 1.
Comando 5:
keytool -import -trustcacerts -keystore C:\ssl\nomedefinidonocomando1.kdb -alias certificado -file C:\ssl\meucertificadosalvodoitem1.1.2.cer
Importante
- A senha solicitada na execução do comando a senha do keystore que foi cadastrada no comando 1.
- No comando é utilizado o parâmetro -alias certificado, o certificado deverá ser importado para o alias utilizado na criação do CSR no comando 1.
- O arquivo meucertificadosalvodoitem1.1.2.cer é o que foi gerado no tópico 1.2.
1.4 Validando a importação dos certificados
Para verificar se os certificados foram importados corretamente, seguir com o comando abaixo:
Comando 6:
keytool -list -keystore C:\ssl\nomedefinidonocomando1.kdb -v > C:\ssl\list.txt
Informar a senha definida no comando 1.
Importante verificar que foram importados os 3 certificados.
1.2 Configuração do Tomcat
Este manual prevê a utilização da implementação JSSE para o site seguro.
Para dar continuidade, precisa alterar o arquivo de configuração do tomcat.
O arquivo de configurações se localiza em <INSTALLDIR>/server/conf/server.xml, sendo <INSTALLDIR> o diretório de instalação do SmartClient HTML.
Abra ele e localize a chave <Connector ... />. Edite conforme o exemplo abaixo.
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9443"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="C:\ssl\fidelix_me.kdb"
keystorePass="totvs@123"
truststoreFile="C:\ssl\fidelix_me.kdb"
truststorePass="totvs@123"
clientAuth="want"
sslProtocol="TLS" />
Onde:
- Protocol: Pode variar de acordo com a configuração do seu ambiente, para mais detalhes acesse: Escolhendo o Conector
- Port: Deve-se definir a porta de comunicação para o site seguro. O padrão é utilizar 443
- Keystorefile: Local onde foi armazenado o certificado emitido.
- Keystorepass: Senha definida no comando 1.
- Truststorefile: Local onde foi armazenado o certificado emitido.
- Truststorepass: Senha definida no comando 1.
- ClientAuth: Esta informação pode variar entre:
- Want: Ao acessar o SmartClient HTML, será solicitado o e-CPF, caso o usuário informe fará a autenticação automática, caso o usuário cancele, aparecerá a tela de login normal
- True: Sempre solicitará o e-CPF para o usuário quando acessar o SmartClient HTML, caso o usuário cancele, não abrirá o portal.
- False: Não será solicitado o e-CPF ao usuário, e permitirá apenas o acesso via usuário e senha.
Importante
Para uso em exemplo, utilizou-se o domínio Fidelix.me. Onde este domino é válido porém não possui instalado o SCHTML.
Para isto, precisamos apontar nosso domínio Fidelix.me para o IP local, alterando o arquivo C:\Windows\System32\drivers\etc\hosts.
Saiba mais
1.3 Configurando e testando o e-CPF
Para configurar a utilização do e-CPF deve-se seguir os passos do TDN conforme link abaixo:
Tomcat - Configuração de acesso com e-CPF
Glossário
SSL - Secure Socket Layer
SC - Smart Client
JSSE - Java Secure Socket Extension
HTML - HyperText Markup Language
E-CPF - Cadastro de Pessoas Físicas Eletrônico
HTTPS - Hyper Text Transfer Protocol Secure
SCHtml - Smart Client HyperText Markup Language
CSR - Certificate Signing Request
URL - Endereço Web
SDK - Software development kit
CER - Formato Texto
CN - Common Name
IP - Internet Protocol
TDN - TOTVS Developer Network
0 Comentários